SWRevealViewController - 在@IBAction下手动显示它

时间:2016-06-14 07:57:58

标签: ios swift swrevealviewcontroller

这是我的StartViewController,简单@IBAction

class StartViewController: UIViewController {

    @IBAction func startButtonTapped(sender: UIButton) {
        revealViewController().revealToggleAnimated(true) //error
    }
}

除了注释行外,还有一个错误:

  

致命错误:在解包可选值时意外发现nil

我做错了什么?

当然StartViewController来自SWRevealViewController来自sw_front segue。

出于某种原因,revealViewController()在此处返回nil。为什么呢?

这就是我的故事板的样子:

enter image description here

2 个答案:

答案 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)并查看它是否仍然崩溃。