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