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

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

概述我有一个应用程序是一个单一的视图应用程序.我有一个导航控制器链接到根视图控制器的所有子控制器. 在每个子控制器中,我有一个注销按钮.我想知道如果我可以有一个单一的功能,我可以打电话,将关闭所有已经打开的控制器,无论当用户按下注销时,当前打开什么控制器? 我的基本开始: func tryLogout(){ self.dismissViewControllerAnimated(true, c 我有一个应用程序是一个单一的视图应用程序.我有一个导航控制器链接到根视图控制器的所有子控制器.

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

我的基本开始:

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

任何帮助谢谢!

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

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 – 单一功能来解除所有打开的视图控制器全部内容,希望文章能够帮你解决ios – 单一功能来解除所有打开的视图控制器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1111778.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存