UINavigationController:如何删除堆栈视图

时间:2010-04-07 18:50:02

标签: iphone objective-c uiviewcontroller uinavigationcontroller

这里说的是我的堆栈布局

View3     --> Top of the stack
View2
View1
HomeView  --> Bottom of the stack

所以我现在在View3,如果我点击Home按钮,我想加载HomeView,这意味着我需要弹出View3,{{1 }和View2。但如果我弹出View1,则会显示View3。我不想那样。我希望删除View2View3View2,并显示View1。知道怎么样?

3 个答案:

答案 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)

使用popToViewController

[self.navigationController popToViewController:homeView animated:YES];

答案 2 :(得分:0)

使用...

[self.navigationController popToRootViewControllerAnimated:YES];