上述代碼在你的問題是好的。我知道你在問如何在沒有按鈕的情況下這樣做,但是演示的問題是你使用了一個按鈕,但沒有正確地將它連接到IBAction
。你goNext
應該在你的.H爲定義:
- (IBAction)goNext:(id)sender;
和實現應該是:
- (IBAction)goNext:(id)sender
{
UIViewController *vc=[[self storyboard] instantiateViewControllerWithIdentifier:@"10"];
[self.navigationController pushViewController:vc animated:YES];
}
我想你創建了一個手動IBAction
。在將來值得注意的是,如果您將控制 -drag(或右鍵單擊拖動)從按鈕下拉到助理編輯器文件,您可以自動創建IBAction
接口,並且這種錯誤不會發生:
順便說一句,我個人喜歡使用SEGUE代替,所以我首先定義視圖控制器自身之間的推SEGUE。在Xcode 6,一個將控制從場景上方的視圖控制器圖標到目標場景 -drag:
在Xcode之前的版本6中,一會控制從視圖-drag
我然後選擇在界面生成的SEGUE並給它一個「故事板識別符」(在本例中,我卡勒:在場景下方的欄控制器圖標d它pushTo10
):
我然後有我goNext
執行該SEGUE,而不是手動調用pushViewController
:
- (IBAction)goNext:(id)sender
{
[self performSegueWithIdentifier:@"pushTo10" sender:self];
}
的該優點是,我的故事板現在視覺上表示的流動我的應用程序(而不是似乎有一個場景漂浮在那裏)和圖形元素(如導航欄)在故事板中正確表示。
你不需要這樣做,但它是另一種可以被意識到的選擇。
來源
2012-09-19 17:37:02
Rob
你的問題不在於上述代碼,而是'IBAction'掛鉤到你的按鈕。此外,請注意,您可能要考慮使用'performSegueWithIdentifier'而不是'instantiateViewControllerWithIdentifier'並手動推送它。 – Rob
重複**自己的問題** [如何加載視圖控制器無故事板中的按鈕?](http:// stackoverflow。COM /問題/ 12480929 /如何對負載 - 視圖 - 控制器,而無需鍵合故事板) – Abizern