这里说的是我的堆栈布局
View3 --> Top of the stack
View2
View1
HomeView --> Bottom of the stack
所以我现在在View3
,如果我点击Home
按钮,我想加载HomeView
,这意味着我需要弹出View3
,{{1 }和View2
。但如果我弹出View1
,则会显示View3
。我不想那样。我希望删除View2
,View3
和View2
,并显示View1
。知道怎么样?
答案 0 :(得分:16)
您可以使用popToRootViewControllerAnimated:转到根视图控制器。除了根视图控制器之外,这将弹出堆栈中的所有视图控制器。在您的情况下,这将是 HomeView 。
[self popToRootViewControllerAnimated:YES];
要进入堆栈中的特定视图,可以使用popToViewController:animated:假设您要弹出第三个viewcontroller(从下往上)。在您的情况下,这将是 view2 :
NSArray* viewControllersInStack = self.navigationController.viewControllers;
UIViewController* targetViewController = [viewControllersInStack objectAtIndex:2];
[self.navigationController popToViewController:targetViewController animated:YES];
答案 1 :(得分:2)
[self.navigationController popToViewController:homeView animated:YES];
答案 2 :(得分:0)
使用...
[self.navigationController popToRootViewControllerAnimated:YES];