假设这是我的堆栈布局
View3 --> Top of the stack
View2
View1
HomeView --> Bottom of the stack
所以我在View3
现在,如果我点击Home
按钮,我要加载HomeView
,这意味着我需要弹出View3
, View2
, and View1
。但如果我弹出View3
, View2
将显示。我不想那样。我想View3
, View2
, and View1
被删除,并且HomeView
将显示。知道怎么做吗?
您可以使用popToRootViewControllerAnimated: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instm/UINavigationController/popToRootViewControllerAnimated:到达根视图控制器。这将弹出堆栈中除根视图控制器之外的所有视图控制器。在你的情况下,这将是HomeView.
[self popToRootViewControllerAnimated:YES];
要访问堆栈中的特定视图,您可以使用popToViewController:动画: http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UINavigationController_Class/Reference/Reference.html#//apple_ref/occ/instm/UINavigationController/popToViewController:animated:假设您想弹出第三个视图控制器(从下到上)。在你的情况下,这将是view2:
NSArray* viewControllersInStack = self.navigationController.viewControllers;
UIViewController* targetViewController = [viewControllersInStack objectAtIndex:2];
[self.navigationController popToViewController:targetViewController animated:YES];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)