在我的tableview中,我在导航控制器中插入一个barbutton项目,如照片中的压力必须打开侧边菜单
问题是我没有打开任何菜单! 我关注此视频:https://www.youtube.com/watch?v=wXCHDP9V3aM&t=188s
看起来桌面视图无法识别按钮压力..我该怎么办?
答案 0 :(得分:1)
最容易成为revealViewController为零的原因是你没有在stroyboard中正确连接segues。
如果TabViewController不是您的故事板入口点,则在AppDelegate中添加此代码。 AppDelegate:
if (userDefaults.object(forKey:"user") != nil) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
self.window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController")
self.window?.makeKeyAndVisible()
}
或者如果您为其他viewController呈现TabViewController,则使用此代码呈现TabViewController。
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let main = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController") //SWRevealViewController
self.present(main, animated: true, completion: nil)
更新:
在所有标签中添加此代码。
if (self.revealViewController() != nil) {
menuButton.target = self.revealViewController()
menuButton.action = #selector(SWRevealViewController.revealToggle(_:))
self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
}
登录后跳转到TabViewController使用此代码。
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let main = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController") //SWRevealViewController
self.present(main, animated: true, completion: nil)
登录后:要跳过登录视图,请在AppDelegate中添加此项检查: AppDelegate:
if (userDefaults.object(forKey:"user") != nil) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
self.window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "SWRevealViewController")
self.window?.makeKeyAndVisible()
}