1

我是iOS開發的新手。在我的應用程序中有兩個視圖控制器。我試圖從我的應用程序中的第一個視圖控制器導航到第二個視圖控制器。如何導航到iPhone中的下一個視圖控制器

SecondView *ss=[[SecondView alloc] initWithNibName:@"Second Page" bundle:nil]; 
    [self.navigationController pushViewController:ss animated:YES]; 

我在「堆棧溢出」中發現了這段代碼,但它不起作用。

回答

0

確保您的筆尖名稱爲Second Page。你的班級名稱是SecondView,而nib(xib)名稱是Second Page,那麼只有它會導航。

+0

謝謝@Shah Paneri,我忘記了筆尖的名字..現在它的工作 – Balamurugan 2013-03-14 12:14:32

1

您會收到此錯誤消息,因爲您可能試圖使用Navigator控制器代碼(推送)從一個VC到另一個VC,並且您可能沒有在代碼或Interface Builder中設置導航控制器。

雖然您可以在不使用導航控制器的情況下呈現/關閉VC,但我建議您從此開始。

請注意術語:導航控制器堆棧上的VC使用push/pop,而其他VC(不在導航控制器堆棧上)的VC使用present/dismiss。

有一對夫婦的方式呈現一個VC對另一個VC的「頂部」,它依賴於VC上是否存在SB以及:

1-如果VC不會在你的IB存在而你只是編程方式創建和呈現VC,你可以這樣做:

MyUIViewControllerSubclass *myLittleSubclass=[[MyUIViewControllerSubclass alloc]init]; 
myLittleSubclass.view.frame=self.view.frame; //this is for example only 
[self presentViewController:myLittleSubclass animated:YES completion:nil]; 

上述內容,顯然你必須先添加MyUIViewControllerSubclass目標C類項目(使用添加文件),並將其導入無論你將上面的代碼放在哪一類。

稍後要解僱它,可以使用MyUIViewControllerSubclass類本身的以下代碼。

[self.parentViewController dismissViewControllerAnimated:YES completion:nil]; 

2 - 如果你已經添加了MyUIViewControllerSubclass目標C類項目(使用添加文件),但你打算使用IB來設計它,你已經在IB添加VC,改變它的類在IB到MyUIViewControllerSubclass,然後你可以使用此代碼:

mySubclass *myLittleSubclass=[self.storyboard instantiateViewControllerWithIdentifier:@"theVC"]; 
[self presentViewController:myLittleSubclass animated:YES completion:nil]; 

可以解僱同上。確保您點擊SB中的VC和身份檢查員,將SB ID設置爲「theVC」,並選中「Use SB ID」。

希望這會有所幫助。

相關問題