2012-08-07 121 views
3

我有兩個視圖控制器,我需要在ViewControllerOne中有一個按鈕,當我按下它時向我顯示ViewControllerTwo。按下按鈕更改視圖控制器

在故事板中,我將兩個視圖與「呈現Segges」相關聯 - Push模式。這兩個視圖都有一個視圖控制器類。

+0

這是一個重複的[http://stackoverflow.com/questions/5814752/changing-viewcontroller-on-button-click](http://stackoverflow.com/questions/5814752/changing-viewcontroller-on-按鈕點擊) – 2012-08-07 00:08:17

回答

9

我不確定你的意思是什麼「我將兩個視圖與'呈現Segges' - Push模式相關聯。」您是否使用導航控制器並希望推入賽格,或者您是否希望進行模態賽? 「推式」是一個矛盾的詞彙。

所以,讓我們想象一下你想要一個模態賽格。因此,您在第一個視圖上放置一個按鈕,右鍵單擊並從該按鈕拖動(或按住Control並單擊並拖動)到第二個視圖。

create segue 1

你會得到一個彈出詢問類型SEGUE的。選擇「模式」。

create segue 2

就大功告成了轉變,從1〜2號代碼必要的。

如果你想在第二視圖按鈕,帶你回到第一個觀點,你不希望從第二視圖回到第一個視圖一個模式SEGUE,而是要dismissViewControllerAnimated。你可以通過自定義的繼續,或者更簡單,只需要一個叫dismissViewControllerAnimated的按鈕。因此,您可以在第二個視圖中添加一個按鈕,而編輯器處於「助理」模式下(相關的.h文件顯示在界面生成器下方;如果您想知道如何顯示該文件,請參閱下文。在同一時間作爲界面生成器屏幕.h文件),右點擊(或控制單擊)並拖動從第二視圖中的按鈕向下到第二視圖控制器的h文件:

dismiss 1

順便說一下,如果你沒有在那裏看到.h文件,點擊「助手」編輯器按鈕,然後選擇「自動」,以顯示在那裏的文件,你應該很好:

assistant editor

它會告訴你一個彈出窗口,詢問你想要做什麼。選擇IBAction,給你的新方法的名稱:

dismiss 2

然後轉到您的視圖控制器代碼,並添加dismissViewControllerAnimated代碼:

enter image description here

所有的代碼說(和在這個例子中,我只是叫我的IBAction dismissTwo)是:

- (IBAction)dismissTwo:(id)sender 
{ 
    [self dismissViewControllerAnimated:YES completion:nil]; 
} 
+1

羅伯特,你是不得不回答我的問題的奉獻精神,非常感謝你! – Tony 2012-08-10 19:45:51

5

如果你想做一個push segue,它會更容易。首先,如果你不已經有一個導航控制器,通過選擇第一個視圖中添加一個選擇「嵌入」 - 「導航器」:

push 1

當你這樣做,你就會有一個新的導航控制器(你並不需要做太多的工作),第一個視圖將會有一個導航欄。現在

push 2

,右鍵點擊你的第一個視圖的按鈕(或控制單擊),然後拖動到第二個觀點:

push 3

這一次,選擇「推」 Segue公司:

push 4

,你就會知道它的工作,因爲你本身COND視圖將有一個導航控制器

enter image description here

你並不需要一個按鈕返回,因爲導航控制器會自動有一個「後退」按鈕,這樣你就不需要添加自己的。

這是你如何實現推推力賽。