我目前正在编写一个使用嵌入式navigationControllers的应用程序。我需要从嵌入式视图中弹出第一个视图控制器的初始视图。
这行代码只是让我回到嵌入式navigationController的初始视图:
[self.navigationController popToRootViewControllerAnimated:YES];
有什么想法吗?
答案 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)
}
}
}
}