2013-01-03 57 views
1

我一直在研究iOS應用程序,並且我認爲我沒有使用我已經爲我的應用程序創建的故事板文件/場景正確創建的視圖控制器。在iOS應用程序中使用視圖控制器和場景的正確方法是什麼?

現在,我有兩個故事板文件,一個用於iPhone,另一個用於iPad。在AppDelegate中實現文件有一個名爲方法,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

我已經從這個方法中加載的ViewController開工負荷過程我的應用程序。

因爲我現在有兩個故事板文件,所以我提供了一些條件代碼來加載基於運行該應用程序的設備的特定故事板文件。

什麼是加載故事板文件的正確方法?

加載故事板文件後,我是否初始化根視圖控制器?

一旦我的根視圖控制器被加載,它應該加載根場景中指定的元素?

如果我選擇通過單擊根場景中的按鈕從根場景加載另一場景,我​​應該關閉根場景並加載新場景,還是將新場景作爲父場景的子類? 在場景之間切換的正確方法是什麼?

基本上我有一個單獨的視圖控制器用於我的應用程序中的每個場景,並且我已經指定了與IB中每個場景相關的視圖控制器。

現在我有一個按鈕,可以從開始/根場景按下加載與另一個視圖控制器關聯的另一個場景。在這個新的場景中,我有一個完成按鈕,它會跳回到根視圖控制器。

如果我通過反覆點擊按鈕重複點擊這兩個按鈕,我是在創建視圖控制器的新對象,還是重複使用已經創建的對象?

我知道這不僅僅是一個問題,但我試圖很好地理解視圖生命週期,以及視圖控制器如何與場景相關,以及加載第一個視圖控制器的正確方法,該視圖控制器應該加載第一個場景在我想的應用程序中。

+0

這裏是一個詳細的解釋http://stackoverflow.com/a/23403979/294884 – Fattie

回答

1

什麼是加載故事板文件的正確方法?

在類導航器中單擊您的項目。它是最重要的東西,你可以在那裏點擊,它有你的應用程序的名字。有些配置文件會在你以前的源代碼的地方打開,你需要找到一個可以爲不同設備指定故事板的地方。我認爲這是左起第二個標籤,但我現在無法檢查。你只需指定一個故事板用於iphones和故事板用於ipad,你會沒事的。

編輯:你還需要爲故事板文件指定一個initailView。這可以通過簡單地打開故事板中的身份檢查器(我認爲),並選擇問題視圖並選中「初始視圖」旁邊的框來完成。如果我的記憶失敗,請嘗試所有四名檢查員。它會在那裏,我保證;)

場景之間過渡的正確方法是什麼?

在大多數情況下,您將使用segue。那些thigs是新的故事板,他們是炸彈。你可以實現的一種方法叫做

-(void)prepareForSegue:(UIStoryboardSegue *) sender:(id)sender 

在這裏你可以檢查segue的標識符,然後直接操作destinationViewController屬性。下面是一個很好的教程: http://www.appcoda.com/storyboards-ios-tutorial-pass-data-between-view-controller-with-segue/

但是,如果你不能使用segue,你將需要一個rootViewController來顯示超過模態視圖的任何東西。基本上,rootViewControllers管理一堆視圖,而不是你的業務如何做。根據你的用戶界面,你可能需要一個NavigationViewController或一個TabBarViewController,只需谷歌兩種,看看最適合你。

隨意問任何你可能有的問題,生病很高興爲你效勞。 玩得開心

+0

今天我回家後,我會嘗試打散我的想法,感謝您的答覆。 – Chris

+0

helloooo @Chris你在嗎? – Fattie

相關問題