NavigationControllers不互相推送。您可以将NavigationController替换为另一个,但不会涉及“推送”动画。
但是,您可以在同一个导航控制器上设置不同的视图控制器并具有动画。这些将取代导航控制器内现有的视图控制器。下面是一个例子来推一个视图控制器,并更换现有的视图控制器导航控制器内:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ViewControllerOne *vc1 = [storyboard instantiateViewControllerWithIdentifier:@"ViewControllerOne"];
NSMutableArray *controllers = [NSMutableArray array];
[controllers addObject:vc1];
[yourAppNavigationController setViewControllers:controllers animated:YES];
如果要替换多个视图控制器当前视图控制器(S):
// 1.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
FirstViewController *vc1 = [storyboard instantiateViewControllerWithIdentifier:@"FirstViewController"];
SecondViewController *vc2 = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
ThirdViewController *vc3 = [storyboard instantiateViewControllerWithIdentifier:@"ThirdViewController"];
// 2.
NSMutableArray *controllers = [NSMutableArray array];
[controllers addObject:vc1];
[controllers addObject:vc2];
[controllers addObject:vc3];
// 3.
[yourAppNavigationController setViewControllers:controllers animated:YES];
再次,这涉及到您可能正在寻找的“推动”动画,并且它将取代现有的视图控制器,因此不会出现不希望的后退按钮(在第一个代码示例中为w/one VC)。
我认为你的意思可能是“编程式”而不是“务实”。你能否显示你所尝试过的代码,并描述你无法解决的具体问题?这个问题目前太含糊。 – 2015-02-24 14:48:19
交换让与var。你有任何错误? – Miknash 2015-02-24 15:11:23
NickCatib,没有效果。视图控制器和苹果库提供的大多数东西都是类而不是结构体。 let关键字意味着它不能被重新分配。它仍然可能发生变异。 – moger777 2015-02-24 15:23:04