弹出到初始视图控制器

时间:2014-01-29 22:33:45

标签: ios iphone objective-c uinavigationcontroller popviewcontrolleranimated

我目前正在编写一个使用嵌入式navigationControllers的应用程序。我需要从嵌入式视图中弹出第一个视图控制器的初始视图。

这行代码只是让我回到嵌入式navigationController的初始视图:

[self.navigationController popToRootViewControllerAnimated:YES];

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

你可以像这样做一些递归函数。根据您的意愿命名,或者为方便起见,将其命名为类别。

- (void)recursivePop:(UIViewController *)viewController
{
   if (viewController.navigationController)
   {
       [viewController.navigationController popToRootViewControllerAnimated:YES];
       [self recursivePop:viewController.navigationController];
   }
}

然后在视图控制器中调用它,并调用它。

[self recursivePop:self];

答案 1 :(得分:0)

Swift版本:

func recursivePop(controller: UIViewController?){

    if let controller = controller {
        if let nav:UINavigationController = controller.navigationController {
            nav.popToRootViewControllerAnimated(true)
            self.recursivePop(controller)
        }

    if let split:UISplitViewController = controller.splitViewController {
            if let nav:UINavigationController = split.navigationController {
                nav.popToRootViewControllerAnimated(true)
                self.recursivePop(controller)
            }
        }
    }
}