2015-12-02 69 views
-1

這確實應該起作用。這是iOS中最簡單的事情之一,由於某些原因,它只是不起作用。iOS中的簡單視圖控制器開關

我的故事板中有兩個視圖控制器。一個是InitViewController,另一個是ViewController,分別具有Init和ViewOne的故事板ID。我在InitViewController上有一個運行代碼來切換視圖的按鈕。代碼運行正常,但沒有發生,儘管這一事實。這裏是代碼:

-(IBAction)NextPage:(id)sender{ 
    ViewController *wc = [[ViewController alloc] 
           initWithNibName:@"ViewOne" 
           bundle:nil]; 

[self.navigationController pushViewController:wc animated:YES]; 

} 

我導入ViewController.h,我只是不知道爲什麼這是行不通的。

+0

你的初始視圖控制器實際嵌套在'UINavigationController'內嗎?當手動調用'pushViewController:animated:'時,這可能是「present」segue工作的原因之一,因爲當它不嵌套在導航控制器中時,它會回落到模式演示文稿中。 –

+0

好吧,如果它沒有奏效,那就不足爲奇了。視圖控制器是否返回名稱爲ViewOne的精確視圖控制器?你的視圖控制器在哪裏?它是在xib還是在故事板? –

回答

0

initWithNibName:適用於在.xib文件中創建的視圖控制器,而不是故事板。從故事板使用-[UIStoryboard instantiateViewControllerWithIdentifier:]

ViewController *wc = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewOne"]; 
[self.navigationController pushViewController:wc animated:YES]; 
+1

您也可以在故事板中設置推式繼續,而不是在代碼中執行操作 – dan

+0

上面的代碼似乎也沒有做到。我甚至試過[[UIStoryboard storyboardWithName:@「Main」bundle:nil] instantiateViewControllerWithIdentifier:@「ViewOne」];我可能會錯過什麼?我會接下來嘗試繼續。 –

+0

好的,push segue工作,但它仍然不理想。我希望能夠根據以前的用戶交互動態設置按鈕以轉到不同的區域。 –

0

創建一個視圖控制器,你需要一個NavigationController - 嘗試登錄self.navigationcontroller,你將看到的是null 在你的故事板添加UINavigationController設置爲入口點,設置InitViewController爲根視圖控制器然後你可以使用:

ViewController *wc = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewOne"]; 
[self.navigationController pushViewController:wc animated:YES]; 
相關問題