我有一个应用程序,它是单视图应用程序。我有一个导航控制器链接到根视图控制器的所有子控制器。
在每个子控制器中,我都有一个注销按钮。我想知道是否可以有一个可以调用的函数,该函数将关闭一路上打开的所有控制器,无论用户按下注销时当前打开哪个控制器?
我的基本开始:
func tryLogout(){
self.dismissViewControllerAnimated(true, completion: nil)
let navigationController = UINavigationController(rootViewController: UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("LoginViewController") )
self.presentViewController(navigationController, animated: true, completion: nil)
}
我正在寻找执行此任务的最有效的内存方法。我将把我的注销功能放在一个单独的 utils 文件中,但是这样我就不能使用 self.而且我仍然存在知道要动态关闭哪些控制器的问题。
Update建议弹出到根视图控制器。所以我的尝试是这样的:
func tryLogout(ViewController : UIViewController){
print("do something")
dispatch_async(dispatch_get_main_queue(), {
ViewController.navigationController?.popToRootViewControllerAnimated(true)
return
})
}
这是实现我所追求的目标的最佳方式吗?
您可以致电:
self.view.window!.rootViewController?.dismiss(animated: false, completion: nil)
应该关闭根视图控制器之上的所有视图控制器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)