我目前正在编写一个使用嵌入式导航控制器的应用程序。我需要从嵌入式视图控制器中弹出到第一个视图控制器的初始视图。
这行代码只是将我返回到嵌入式导航控制器的初始视图:
[self.navigationController popToRootViewControllerAnimated:YES];
有任何想法吗?
我目前正在编写一个使用嵌入式导航控制器的应用程序。我需要从嵌入式视图控制器中弹出到第一个视图控制器的初始视图。
这行代码只是将我返回到嵌入式导航控制器的初始视图:
[self.navigationController popToRootViewControllerAnimated:YES];
有任何想法吗?
你可以做一些这样的递归函数。将其命名为您喜欢的任何名称或为方便起见将其设为类别。
- (void)recursivePop:(UIViewController *)viewController
{
if (viewController.navigationController)
{
[viewController.navigationController popToRootViewControllerAnimated:YES];
[self recursivePop:viewController.navigationController];
}
}
然后在视图控制器中你想调用它,像这样调用它。
[self recursivePop:self];
斯威夫特版本:
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)
}
}
}
}