Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift iOS-如何正确使用popToViewController_Ios_Swift_Navigation - Fatal编程技术网

Swift iOS-如何正确使用popToViewController

Swift iOS-如何正确使用popToViewController,ios,swift,navigation,Ios,Swift,Navigation,又是我——学习斯威夫特。 问题很简单,我有如下控制视图: [初始]->[未记录]->[注册] 现在注册后我有两次解雇,真的很难看! 我不想直接从注册页转到首页。 我尝试了这个代码,但遗憾的是它没有任何错误地关闭应用程序 self.dismiss(animated: true, completion: { let controllers = self.navigationController?.viewControllers for

又是我——学习斯威夫特。 问题很简单,我有如下控制视图: [初始]->[未记录]->[注册] 现在注册后我有两次解雇,真的很难看! 我不想直接从注册页转到首页。 我尝试了这个代码,但遗憾的是它没有任何错误地关闭应用程序

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()


您只需使用
self.navigationController?.popToRootViewController()
命令来代替

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

只需弹出到根视图控制器

self.navigationController?.popToRootViewController(animated: true)

遗憾的是,当我登录或创建帐户时,我仍然没有任何解决方案如何返回

我尝试了这种方式,但与上面相同,应用程序关闭:

for controller in self.navigationController!.viewControllers as Array {
                    if controller.isKind(of: InitialViewController.self) {
                        self.navigationController!.popToViewController(controller, animated: true)
                        break
                    }
                }

您是否尝试在
let controllers=,然后单步执行代码以查看发生了什么情况?1。我建议您在调用
popToViewController
后返回
(如果堆栈中有该视图控制器类的多个实例)。2.你不需要像这样的
!InitialViewController
将调用转换为
popToViewController
。3.返回视图控制器的更好方法是使用“展开”序列(您可以在线搜索并查找大量引用).PopToViewControlles始终处于中断状态appCant make unwind seque:/try ctrl+drag to button,我只能选择view and nothing Happens nothing Happens。App get closed:无法结束background任务:不存在标识符为9(0x9)的后台任务,或者它可能已经结束。中断UIApplicationEndBackgroundTaskError()以进行调试。您是否可以让我知道您正在使用导航控制器或要推到下一个屏幕。