我正在爲iPhone和iPad開發具有單獨視圖的多設備應用程序。在我的應用程序中,我使用帶有四個內容標籤的UITabBarController作爲mainView。
第一個選項卡包含一個UINavigationController,第二個選項卡包含一個UIViewController。第三個選項卡與第一個選項卡類似,但具有其他NIB和類文件。第四個選項卡與第二個選項卡相似,但包含其他內容。UITabBarController在應用程序啓動時加載兩個選項卡
在每一個viewDidLoad方法中,我寫了一些東西,像「[currentview]被加載」一樣,並且currentview被替換爲加載的視圖的標識名稱。
如果我在iPhone上啓動我的應用程序,然後控制檯顯示我沒有任何用戶交互,第一個選項卡和第三個選項卡(都是UINavigationController)都加載了。詳細地說,第三個標籤在第一個標籤之前加載。
如果我在iPad中啓動我的應用程序,那麼只有第一個選項卡會像它應該加載一樣。除了實現針對iPad的NIB文件,我在我的應用程序開始時使用相同的源代碼。
在AppDelegate_iPhone.m中,我只將UITabBarController.view作爲子視圖添加到窗口中。在AppDelegate_iPad.m中完成相同的過程
我已經對此進行了搜索並發現調用controllers.view導致加載視圖,但編程方式我既不調用第一個選項卡的視圖也不調用第三個選項卡。這是由UITabBarController以他自然的方式完成的(沒有改變這個控制器的任何東西)。所以我有點困惑爲什麼我的應用程序加載iPhone上的第三個標籤。由於這個問題,我不得不刪除一些在第三個標籤的viewDidLoad中完成的代碼,因爲這個代碼只有在標籤幾乎要顯示的時候才起作用。
我希望任何人都有同樣的問題,並可以告訴我一個解決方案或提示。