为 iOS 应用实现侧边菜单,应用在显示手势时崩溃。
Implementing side menu for iOS App, app crashing on gestures to present.
我正在尝试使用此库 https://github.com/jonkykong/SideMenu 为我的 iOS 应用实现侧边菜单
通过代码实现,下面写在view中的代码确实加载了func:
let menuRightNavigationController = UISideMenuNavigationController(rootViewController: SideMenuViewController())
SideMenuManager.default.menuRightNavigationController = menuRightNavigationController
SideMenuManager.default.menuFadeStatusBar = false
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
SideMenuManager.default.menuAddScreenEdgePanGesturesToPresent(toView: self.navigationController!.view)
但是应用程序在上面代码的最后两行崩溃了,下面的代码是用按钮操作编写的:
@objc func menuButtonAction(sender: UIButton!) {
present(SideMenuManager.default.menuRightNavigationController!, animated: true, completion: nil)
}
请大家帮忙解决崩溃问题,这样我就可以展示我的侧边菜单了。谢谢!
我很确定您的应用程序在遇到此行中的 nil
值时会崩溃:
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
,但是没有崩溃日志我只能做一些假设。
我假设这里的 self
指的是 UIViewController
class。根据 documentation navigationController
属性 是视图控制器层次结构中最近的祖先,即导航控制器。如果视图控制器未嵌入导航控制器,则此 属性 为 nil。
我建议您确保在强制解包之前启动 UINavigationController 对象。这里是useful documentation link,可以帮助你了解导航控制器的概念。
你需要从这个
改变你的一行代码
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
到这个
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.view)
我正在尝试使用此库 https://github.com/jonkykong/SideMenu 为我的 iOS 应用实现侧边菜单 通过代码实现,下面写在view中的代码确实加载了func:
let menuRightNavigationController = UISideMenuNavigationController(rootViewController: SideMenuViewController())
SideMenuManager.default.menuRightNavigationController = menuRightNavigationController
SideMenuManager.default.menuFadeStatusBar = false
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
SideMenuManager.default.menuAddScreenEdgePanGesturesToPresent(toView: self.navigationController!.view)
但是应用程序在上面代码的最后两行崩溃了,下面的代码是用按钮操作编写的:
@objc func menuButtonAction(sender: UIButton!) {
present(SideMenuManager.default.menuRightNavigationController!, animated: true, completion: nil)
}
请大家帮忙解决崩溃问题,这样我就可以展示我的侧边菜单了。谢谢!
我很确定您的应用程序在遇到此行中的 nil
值时会崩溃:
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
,但是没有崩溃日志我只能做一些假设。
我假设这里的 self
指的是 UIViewController
class。根据 documentation navigationController
属性 是视图控制器层次结构中最近的祖先,即导航控制器。如果视图控制器未嵌入导航控制器,则此 属性 为 nil。
我建议您确保在强制解包之前启动 UINavigationController 对象。这里是useful documentation link,可以帮助你了解导航控制器的概念。
你需要从这个
改变你的一行代码SideMenuManager.default.menuAddPanGestureToPresent(toView: self.navigationController!.navigationBar)
到这个
SideMenuManager.default.menuAddPanGestureToPresent(toView: self.view)