繁体   English   中英

弹出viewcontroller然后回到RootViewController似乎不起作用

[英]Popping viewcontroller and then back to RootViewController doesn't seem to work

我有一个应用程序,在堆栈上推送四个viewcontrollers。 在第四个视图控制器中,我做了一个PopViewController,所以我应该回到第三个viewcontroller,在viewWillAppear方法中,我做一个PopToRootViewController。 这不会让我回到正确的第一个viewcontroller。 代码很简单,只是一个

[self.navigationController pushViewController:nextController animated:YES]

在前3个视图控制器中的每一个中,以及在第四个中

[self.navigationController popViewControllerAnimated:YES].  

在第三个viewcontroller中,我有一个viewWillAppear方法,它执行:

[self.navigationController popToRootViewControllerAnimated:YES].

在浏览视图时,我得到以下信息:

启动应用:

         Back:               Title: FirstLevel

按确定:

         Back: FirstLevel    Title: SecondLevel

按确定:

         Back: SecondLevel   Title: ThirdLevel

按确定:

         Back: ThirdLevel    Title: FourthLevel

按OK:弹出1然后弹回root:

         Back: FirstLevel    Title: ThirdLevel

如果我现在按OK:

         Back: ThirdLevel    Title: SecondLevel

如果这令人困惑,我很抱歉。 我应该能够弹出一个视图控制器,然后立即弹回到根目录吗?

谢谢你的帮助。

正如Mark建议的那样,你应该使用你的-popToRootViewController视图控制器中的-popToRootViewController而不是第3个视图控制器,因为你的动机是将它弹出到根视图控制器。

但是如果您仍然想要出于某些匿名原因而实现此功能,那么在第3个viewcontroller中,使用:

viewDidAppear方法中的[self.navigationController popToRootViewControllerAnimated:YES] ,而不是viewWillAppear

我希望它有效:)

似乎没有任何理由回弹查看控制器3,因为您甚至在视图控制器3的视图出现之前尝试转到根。 只需发送-popToRootViewControllerAnimated:即可查看控制器4。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM