3

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

这行代码只是将我返回到嵌入式导航控制器的初始视图:

[self.navigationController popToRootViewControllerAnimated:YES];

有任何想法吗?

4

2 回答 2

5

你可以做一些这样的递归函数。将其命名为您喜欢的任何名称或为方便起见将其设为类别。

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

然后在视图控制器中你想调用它,像这样调用它。

[self recursivePop:self];
于 2014-01-29T23:21:10.980 回答
0

斯威夫特版本:

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)
            }
        }
    }
}
于 2016-05-11T07:23:05.557 回答