从Swift中另一个ViewController单击“返回”按钮后,SWRevealViewController按钮不起作用

时间:2017-03-03 07:46:01

标签: swift3 back-button swrevealviewcontroller

我为我的项目使用SWRevealViewController。
我的问题是,我可以在第一次点击 SWRevealView切换按钮,然后单击其他视图控制器上的后退按钮后该按钮不起作用回到那个观点。
这是我项目的截图。


enter image description here

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


我的代码来自服务视图控制器;

 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)

}

我的代码是错误还是逻辑错误?我一直试图解决这个问题一个星期。请帮帮我..

1 个答案:

答案 0 :(得分:0)

在serviceViewController中单击图像视图的事件,

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

将导航控制器附加到详细视图控制器。无需在服务和细节之间进行手动连接。 为回归事件添加一个按钮。

 self.navigationController?.popViewController(animated: true)

在添加menubutton目标的最后一行中添加self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())而不是ur代码。

检查是否有效。