首页 > 解决方案 > Swift iOS - 如何正确使用 popToViewController

问题描述

又是我 - 快速学习。问题很简单,我有这样的控制视图:[Initial]->[NotLogged]->[SignUp] 现在注册后我有双重解雇,真的很难看!我不想直接从注册页面进入初始页面。我尝试了这段代码,但遗憾的是它关闭了应用程序而没有任何错误。

self.dismiss(animated: true, completion: {
                let controllers = self.navigationController?.viewControllers
                 for vc in controllers! {
                   if vc is InitialViewController {
                     _ = self.navigationController?.popToViewController(vc as! InitialViewController, animated: true)
                   }
                }
            } )

pushViewController 和上面一样,有输出:

2020-01-29 20:30:38.342180+0100 BillyBill[44355:19540995] 无法结束 BackgroundTask:不存在标识符为 10 (0xa) 的后台任务,或者它可能已经结束。中断 UIApplicationEndBackgroundTaskError() 进行调试。

标签: iosswiftnavigation

解决方案


您可以使用 self.navigationController?.popToRootViewController()命令代替

for vc in controllers! {
                   if vc is InitialViewController {
                     _ = self.navigationController?.popToViewController(vc as! InitialViewController, animated: true)
                   }
                }

推荐阅读