【问题标题】:SWRevealViewController button not work after clicking Back button from another ViewController in Swift在 Swift 中单击另一个 ViewController 的后退按钮后,SWRevealViewController 按钮不起作用
【发布时间】:2017-07-23 05:40:32
【问题描述】:

我在我的项目中使用 SWRevealViewController。
我的问题是我可以在第一次单击 SWRevealView 切换按钮,而在我从另一个视图控制器单击返回按钮并返回后,该按钮 不起作用到那个观点。
这是我的项目的屏幕截图。


我首先从服务视图控制器单击 NavigationLeft 按钮,然后显示左侧菜单。
之后,我从该视图控制器单击“Imageview”以转到下一页。
当我到达详细的下一页时,我单击“后退按钮”并转到服务视图控制器。
当时,我点击 RevealView Toggle 按钮,它不起作用。我收到错误致命错误:在展开可选值时意外发现 nil


我的 Service View Controllers 代码是;

 override func viewDidLoad() {
    super.viewDidLoad()

 if self.revealViewController() != nil {
        debugPrint("Menu Click")
        btnBack.target = self.revealViewController()
        btnBack.action = #selector(SWRevealViewController.revealToggle(_:))
        self.revealViewController().panGestureRecognizer()

    }

    else
    {
        debugPrint("nil")
        btnBack.target = self.revealViewController()
        btnBack.action = #selector(SWRevealViewController.revealToggle(_:))
        // self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
        self.revealViewController().panGestureRecognizer()

    }


}

当项目第一次运行时,代码传递给“self.revealViewController() != nil”,然后我转到详细视图控制器并单击后退按钮。那时代码传递给“debugPrint(“nil”)”并且它没有显示菜单或工作。

详细视图控制器的代码是;

 @IBAction func btnBack(_ sender: UIBarButtonItem) {
    debugPrint("BtnBack")
    self.dismiss(animated: true, completion:nil)

}

我的代码有问题还是逻辑有问题?自一周以来,我一直在尝试解决这个问题。请帮帮我..

【问题讨论】:

  • 请同时发布您的菜单初始化代码。
  • 我使用 SWRavealController 库。这是链接兄弟appcoda.com/sidebar-menu-swift。我在 viewDIdLoad 中声明了菜单代码。
  • 我认为这是错误的。您必须在 AppDelegate 文件中使用菜单初始化代码来解决您的问题。查看此链接了解更多详情stackoverflow.com/questions/35363570/…
  • 你有没有解决办法?
  • 仍在解决兄弟@HardikShekhat

标签: swift3 back-button swrevealviewcontroller


【解决方案1】:

关于serviceViewController中图像视图的点击事件,

let detailVC = self.storyboard?.instantiateViewController(withIdentifier: "Detail") as! DetailVc
    self.navigationController?.pushViewController(detailVC, animated: true)

将导航控制器附加到详细视图控制器。无需手动连接服务和细节。 为返回事件添加一个 barbutton。

 self.navigationController?.popViewController(animated: true)

在为菜单按钮添加目标的最后一行添加self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())而不是你的代码。

检查这是否有效。

【讨论】:

    猜你喜欢
    • 2015-07-23
    • 2015-12-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多