从层次结构中删除所有uiviewcontroller以显示第一个uiviewcontroller

时间:2013-12-04 22:05:50

标签: ios uiviewcontroller hierarchy rootview

当我的应用程序启动时,我有一个模态视图控制器来输入凭据(IP @,用户名,密码......)。当用户登录时,他可以打开许多UIViewControllers,可以打开其他UIViewController等等......这些视图控制器可以是导航控制器,标签栏,模态....

接下来,用户可以将应用程序保留在后台。接下来,用户可以打开邮件应用程序并打开包含附件的邮件以导航到我的应用程序。当用户选择我的应用程序以打开附件时。

当App在前台移动时,我需要转到层次结构的特定viewController(登录屏幕后打开的第一个ViewController)。

要将App移动到我尝试使用的第一个ViewController - dismissViewControllerAnimated:completion:

但没有成功,仍然会显示仍然显示的层次结构的视图。

知道怎么做吗? 的问候,

的Sebastien。

2 个答案:

答案 0 :(得分:1)

如果所有视图控制器都在1个导航控制器中并被推入堆栈,您只需使用popToRootViewControllerAnimated:popToViewController:animated:

否则,为什么不关闭第一个Modal视图控制器,然后将其与想要的视图控制器一起放回。

答案 1 :(得分:0)

我找到了一小段代码的解决方案

    UINavigationController* navc = (UINavigationController*)viewController.topViewController;
if (navc != Nil) {
    if (navc.presentedViewController != Nil) {
        [navc dismissViewControllerAnimated:FALSE completion:Nil];
    }
        [navc popToRootViewControllerAnimated:TRUE];
}

最后并不复杂!

塞巴斯蒂安。