如何从模态视图中popToRootViewController?

时间:2011-05-02 06:31:44

标签: ios uinavigationcontroller modalviewcontroller

我有一个典型的UITableViewController视图集。在所有视图上都有一个按钮,可以显示模型视图。在该设置视图上是一个按钮。我希望该按钮能够解除模态视图在UITableViewController的navigationController上实现popToRootViewController。

解雇模态视图很简单:

[self dismissModalViewControllerAnimated:NO];

并且工作正常。我试过这个来弹出主UITableViewController:

[self.parentViewController.navigationController popToRootViewControllerAnimated:NO];

没有任何反应。

我可以实现一个委托来实现这一点,但是有很多视图控制器具有相同的设置按钮(还有更多),所以首选找到一个解决方案,在每个视图控制器中不需要额外的代码

非常感谢!

5 个答案:

答案 0 :(得分:6)

通过rdelmal(https://stackoverflow.com/a/16311935/1395563)查看答案,这对我来说就像一个魅力。我在模态视图中的动作中使用此代码。

[(UINavigationController *)self.presentingViewController  popToRootViewController:NO];
[self dismissViewControllerAnimated:YES completion:nil];

答案 1 :(得分:1)

尝试

[[[[UIApplication sharedApplication].keyWindow] rootViewController] popToRootViewController:YES];

答案 2 :(得分:1)

无法找到这样的解决方案,所以我实现了一个工作正常的协议/委托。只是:

[self.navigationController popToRootViewControllerAnimated:NO];

在委托电话中。

答案 3 :(得分:1)

在你的appdelegate文件中添加一个方法

-(void)GotoRoot{
[self.navigationController popToRootViewControllerAnimated:YES];}

现在在你的登记按钮

上的课程中调用它
[self dismissModalViewControllerAnimated:NO];
[(TestAppDelegate *)[[UIApplication sharedApplication] delegate]) GotoRoot];

请恢复其结果;

答案 4 :(得分:0)

这对我有用

[[self parentViewController] popToRootViewControllerAnimated:NO]