【发布时间】:2013-09-02 21:25:07
【问题描述】:
有什么方法可以将视图控制器推送到导航控制器而不堆叠它?
想要的行为(堆栈表示):
[VC1[VC2]] -> 从 VC2 推送 VC3 -> [VC1[VC3]]
【问题讨论】:
-
我认为这叫做替换segue
标签: ios
有什么方法可以将视图控制器推送到导航控制器而不堆叠它?
想要的行为(堆栈表示):
[VC1[VC2]] -> 从 VC2 推送 VC3 -> [VC1[VC3]]
【问题讨论】:
标签: ios
是的,只需像这样弹出另一个(不设置动画):
[navController popViewControllerAnimated:NO]
[navController pushViewController:VC3 animated:YES]
或者选择更通用的选项 2:替换 viewControllers 属性:
NSArray *newControllers = @[VC1, VC3];
[navController setViewControllers:newControllers animated:YES];
或者...
NSArray *newControllers = @[navController.viewControllers[0], VC3];
[navController setViewControllers:newControllers animated:YES];
【讨论】:
我会使用 UINavigationController 的方法:
- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated
这样你就可以做到这一点:
UINavigationController *navigationController = [self navigationController];
[navigationController setViewControllers:@[navigationController.viewControllers[0], VC3] animated:YES];
这将为您提供新视图控制器 (VC3) 的推送动画。
【讨论】: