Swift3 SWRevealViewController按钮在Swift中从另一个ViewController单击“后退”按钮后不工作
我在我的项目中使用SWRevealViewControllerSwift3 SWRevealViewController按钮在Swift中从另一个ViewController单击“后退”按钮后不工作,swift3,back-button,swrevealviewcontroller,Swift3,Back Button,Swrevealviewcontroller,我在我的项目中使用SWRevealViewController我的问题是,我可以在第一次单击“查看切换”按钮,而在我从另一个视图控制器单击“上一步”按钮并返回该视图后,该按钮不起作用
我的问题是,我可以在第一次单击“查看切换”按钮,而在我从另一个视图控制器单击“上一步”按钮并返回该视图后,该按钮不起作用<这是我的项目的截图
我首先从服务视图控制器中单击NavigationLeft按钮,左侧菜单显示出来
之后,我从视图控制器单击“Imageview”进入下一页
当我到达下一页的详细信息时,我点击“后退按钮”,它进入服务视图控制器
当时,我点击RevelView切换按钮,它不工作。我得到错误致命错误:在展开可选值时意外发现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)
}
我的代码是错误的还是逻辑错误?从一个星期以来,我一直在努力解决这个问题。请帮助我..在serviceViewController中单击图像视图事件
let detailVC = self.storyboard?.instantiateViewController(withIdentifier: "Detail") as! DetailVc
self.navigationController?.pushViewController(detailVC, animated: true)
将导航控制器附加到详图视图控制器。服务和细节之间不需要手动连接。
为返回事件添加一个按钮
self.navigationController?.popViewController(animated: true)
同时添加self.view.addgestureRecognitizer(self.revelviewcontroller().pangestureRecognitizer())
,而不是在为菜单按钮添加目标的最后一行中添加ur代码
检查是否有效。请同时发布菜单初始化代码。我使用SWReavealController库。这是链接兄弟。我在viewDIdLoad中声明了菜单代码。我认为这是错误的。您必须在AppDelegate文件中选择初始化代码来解决问题。查看此链接了解更多详细信息您是否有解决方案?仍在解决bro@HardikShekhat