ios – 单一功能来解除所有打开的视图控制器

前端之家收集整理的这篇文章主要介绍了ios – 单一功能来解除所有打开的视图控制器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个应用程序是一个单一的视图应用程序.我有一个导航控制器链接到根视图控制器的所有子控制器.

在每个子控制器中,我有一个注销按钮.我想知道如果我可以有一个单一的功能,我可以打电话,将关闭所有已经打开的控制器,无论当用户按下注销时,当前打开什么控制器?

我的基本开始:

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.而且我还有一个问题,即知道哪些控制器动态地关闭.

任何帮助谢谢!

更新
已经建议弹出到根视图控制器.所以我的尝试是这样的:

func trylogout(ViewController : UIViewController){
     print("do something")
     dispatch_async(dispatch_get_main_queue(),{
         ViewController.navigationController?.popToRootViewControllerAnimated(true)
         return
     })
 }

这将是实现我以后的最佳方式吗?

解决方法

你可以拨打:
self.view.window!.rootViewController?.dismissViewControllerAnimated(false,completion: nil)

应该将根视图控制器上的所有视图控制器关闭.

猜你在找的iOS相关文章