这是我的StartViewController
,简单@IBAction
:
class StartViewController: UIViewController {
@IBAction func startButtonTapped(sender: UIButton) {
revealViewController().revealToggleAnimated(true) //error
}
}
除了注释行外,还有一个错误:
致命错误:在解包可选值时意外发现nil
我做错了什么?
当然StartViewController
来自SWRevealViewController
来自sw_front
segue。
出于某种原因,revealViewController()
在此处返回nil。为什么呢?
这就是我的故事板的样子:
答案 0 :(得分:2)
使用storyboard实现SWRevealViewController时,应将 Storyboard入口点设置为SWRevealViewController
实例(显示图片上的View Controller),而不是前视图控制器(图片上的Start View Controller)
请注意revealViewController
方法返回可选指针,即使全部设置正确,它也会返回nil
,直到加载视图为止,所以最好使用可选链接:
revealViewController()?.revealToggleAnimated(true)
答案 1 :(得分:0)
我认为您的应用可能会因为您缺少委托而崩溃。请尝试将以下内容添加到您的协议中:
class StartViewController: UIViewController,SWRevealViewControllerDelegate {
@IBAction func startButtonTapped(sender: UIButton) {
revealViewController().revealToggleAnimated(true) //error
}
}
如果它仍然崩溃,请尝试使用revealViewController().revealToggleAnimated(true)
更改revealViewController().revealToggle(self)
并查看它是否仍然崩溃。