我当前正在编写一个使用嵌入式navigation controllers的应用程序。我需要从嵌入式一个内部弹出第一个视图控制器的初始视图。
此代码行只会将我返回到嵌入式导航controller的初始视图:
[self.navigationcontroller poptorootViewControllerralleranimated:yes];
有什么想法?
您可以这样做一些递归功能。为了方便起见,无论您想要什么命名或将其作为类别。
- (void)recursivePop:(UIViewController *)viewController
{
if (viewController.navigationController)
{
[viewController.navigationController popToRootViewControllerAnimated:YES];
[self recursivePop:viewController.navigationController];
}
}
然后在视图控制器中您想用这样调用。
[self recursivePop:self];
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)
}
}
}
}