我从主视图控制器的按钮单击打开导航控制器。
我以编程方式在导航控制器上创建了一个左栏按钮项目,我想解除导航控制器并返回主控制器。
我基本上回到了导航控制器的根视图控制器。
我已经尝试了
navigationController?.dismissViewControllerAnimated(true, completion: nil)
和
self.dismissViewControllerAnimated(true, completion: nil)
并在两者上获得NSException。
请指教。
答案 0 :(得分:6)
斯威夫特3:
self.view.window!.rootViewController?.dismiss(animated: false, completion: nil)
它将关闭所有呈现的视图控制器并保留根视图控制器。
答案 1 :(得分:4)
如果您推送您的ViewController
,则应使用 pop 从ViewController
堆栈中删除Navigation
并登陆上一个ViewController
。 试试这个 ...
self.navigationController?.popViewControllerAnimated(true);
SWIFT 3
_ = navigationController?.popViewController(animated: true);
答案 2 :(得分:0)
dismissViewController工作。
答案 3 :(得分:0)
self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
试试这个:)
答案 4 :(得分:0)
一年后..异常表示在添加左侧栏按钮时,您为操作参数提供的选择器有问题。
这样的事情应该有效:
创建栏按钮项目:
let backBarButton = UIBarButtonItem.init(barButtonSystemItem: UIBarButtonSystemItem.stop, target: self, action: #selector(dismissView))
关闭根视图控制器:
func dismissView() {
self.dismiss(animated: true, completion: nil)
}
答案 5 :(得分:0)
Apple Dev已经提供了非常简单的代码
self.navigationController?.popToRootViewController(animated: false)