kar*_*e23 2 iphone sdk uinavigationcontroller ios
我正在做一个使用UINavigationController的应用程序,我正在切换到其他UIViewControllers,如下所示:
if(self.myViewController == nil){
MyViewController *aViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
self.myViewController = aViewController;
[aViewController release];
}
AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
[delegate.myNavController pushViewController:myViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
我想这是在UINavigationController中创建一堆UIViewControllers,也许是一个索引数组?我想知道怎么回头而不必一个接一个地回来.
例如,我正在通过几个屏幕航行,并且我想在第一个导航索引处返回一个按钮.我还想知道如何修改索引,查看,擦除以及与此问题有关的任何内容.
对不起,如果我没有解释清楚.
你问了两个问题.
首先,我如何回到我的第一个视图控制器.正如@Thomas Clayson和@ender已经回答的那样,你需要popToRootViewControllerAnimated:
你的navigationcontroller对象的方法.
第二个是如何移动到视图控制器堆栈中的特定索引.答案是,您可以显式设置viewControllers数组.因此,您可以拉出视图控制器的当前列表,修改它,并将其设置回navigationController堆栈.它将重置堆栈并动画移动到堆栈中的顶部项目.
正是如此:
NSMutableArray *controllers = self.navigationController.viewControllers;
[controllers removeObjectAtIndex:[controllers count] - 1]; //or whatever
[self.navigationController setViewControllers:controllers animated:YES];
Run Code Online (Sandbox Code Playgroud)
NSArray *viewControllers = [[self navigationController] viewControllers];
for (int i = 0; i < [viewContrlls count]; i++){
id obj = [viewControllers objectAtIndex:i];
if ([obj isKindOfClass:[yourViewControllername class]]){
[[self navigationController] popToViewController:obj animated:YES];
return;
}
}
Run Code Online (Sandbox Code Playgroud)
使用它,您可以返回任何指定的viewController.
归档时间: |
|
查看次数: |
6182 次 |
最近记录: |