iOS UINavigationController 手动控制视图跳转

使用UINavigationController操作A、B、C三个视图控制器时,若需要先从 A跳转到B ,再从 B跳转到C ,而最终希望栈中只有A和C,即C弹出后直接回到A,可以通过如下两种方式实现。

方式一:直接修改UINavigationController的视图控制器栈
在从B跳转到C时执行如下代码
(注意 [navArray count]-1 在根视图控制器时不能使用)

NSMutableArray* navArray = [[NSMutableArray alloc] initWithArray:self.navigationController.viewControllers];
[navArray replaceObjectAtIndex:[navArray count]-1 withObject:CViewController];
[self.navigationController setViewControllers:navArray animated:YES];

方式二:先弹再压

UINavigationController *navController = self.navigationController;
[navController popViewControllerAnimated:NO];
[navController pushViewController:CViewController animated:YES];

参考StackOver:http://stackoverflow.com/a/17328244/1998721

发表评论

电子邮件地址不会被公开。