如图所示,底部有3个控制器(HomeTableViewController,NavigationViewController和NewsViewController)
HomeTableViewController是我正在使用SWRevealViewController并将其设置为首页的主页面。 (sw_front)
在HomeTableViewController中选择了一行之后,它可以导航到NewsTableViewController。但是,我在NewsViewController中添加了一个后退按钮,导航回上一页HomeTableViewController,我无法用这段代码做到这一点。
在HomeTableViewController中,通过选择一行导航到NewsViewController
@IBAction func btnBack(sender: AnyObject)
{
let home = HomeTableViewController()
self.presentViewController(home, animated: true, completion: nil)
}
在NewsViewController中,按返回按钮返回上一页
@IBAction func btnBack(sender: AnyObject)
{
let home = HomeTableViewController()
self.presentViewController(home, animated: true, completion: nil)
}
如果我按下NewsViewController中的后退按钮,则会出现此错误。
致命错误:在解包可选值时意外发现nil
self.revealViewController().rearViewRevealWidth = 200
此代码有错误,位于HomeTableViewController中。 我希望有人可以帮助我。谢谢。
答案 0 :(得分:0)
您需要dismiss
presented
viewController
:
@IBAction func btnBack(sender: AnyObject)
{
let home = HomeTableViewController()
self.dismissViewControllerAnimated(true, completion:nil);
}
答案 1 :(得分:0)
您收到此错误是因为您在HomeTableViewController
中创建了新的btnBack
(此新控制器可能没有revealViewController
)。没有必要这样做。您可以拨打self.dismissViewControllerAnimated(true, completion:{});
致电Islam Q.建议:
@IBAction func btnBack(sender: AnyObject)
{
self.dismissViewControllerAnimated(true, completion:nil);
}
答案 2 :(得分:0)
https://github.com/John-Lluch/SWRevealViewController/issues/516#issuecomment-160590440 这解决了我的问题。 删除Home和News Controller之间的导航控制器,并使用从Home到NewsViewController的推送Segue。