我有故事板与这些流程。我使用的是 SWRevealViewController 以导航到每个导航控制器。
- Navigation Controller 1 --> View Controller Initial (Home) --> View Controller Target
- Navigation Controller 2 --> View Controller X --> View Controller Y --> View Controller Target
- Navigation Controller 3 --> View Controller M --> View Controller Target
从 查看控制器目标 在每个流程中,我想覆盖它的后退按钮,这样它就可以返回到 查看控制器初始化(主页 并在内存上释放其对象。
有什么办法可以做到这一点吗?希望得到任何帮助。谢谢你的帮助。
首先,你需要用自定义的Back BarButton与它的选择器替换你的后退按钮。
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .Done, target: self, action: #selector(self.backToInitial(_:)))
func backToInitial(sender: AnyObject) {
self.navigationController?.popToRootViewControllerAnimated(true)
}
如果你正在运行 swift 3.0
然后 selector
语法是这样的
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .Done, target: self, action: #selector(self.backToInitial(sender:)))
编辑。 对于 SWRevealViewController
这样试试。
let revealController = self.revealViewController;
let vc = self.storyboard?.instantiateViewControllerWithIdentifier("InitialViewController") as! InitialViewController
let navigationController = UINavigationController(rootViewController: vc)
revealController.pushFrontViewController(navigationController, animated:true)
对于View Controller Target中的backButton动作,使用这个。
[self.navigationController popToRootViewControllerAnimated:YES];