2011-05-10 26 views
1

我有一個帶有4個按鈕的uitabbar。啓動屏幕在應用程序啓動時加載。 2個按鈕視圖不會在開始時加載(良好)。 1是Web視圖,另一個是帶有表格視圖的導航控制器。最後一個視圖在應用程序啓動時加載。它是具有表格視圖的另一個導航控制器。UITabbar加載2個應用程序開始的意見,而不僅僅是第一個

我知道哪些正在加載,哪些不是因爲我添加nslogs到所有頂級控制器上的卸載功能。

因此,總體問題是,當我開始我的應用程序,然後旋轉它,然後進入已經加載在桌面視圖中的標題,這是一個web視圖,沒有得到它應該旋轉的備忘錄,並因此調整大小。一旦你在視圖中來回旋轉,那麼它就像它應該那樣工作。它只是最初的時間。

更新1: 問題是如何停止在應用程序啓動時加載標籤欄的另一個按鈕上的第二個控制器。

更新2: 我做didload我所有的初始化的東西,但我嘗試添加以下代碼,但它一直沒有出現在日誌中。我不使用IB,這是所有編程方式:

- (void)loadView 
    { 
     NSLog(@"Loading feedback"); 
    } 

更新3: 我想通了什麼造成這一點。我有一個安裝我的tabbarcontroller的xib。在那個tabbarcontroller我有一個導航控制器,然後我有一個視圖控制器(我設置類到我的反饋類),然後我有導航項目和表視圖。當我添加tableview時,它會觸發控制器加載。簡單地刪除它會阻止它提前加載。然後爲了解決這個問題,我爲反饋創建了一個xib。所以我不喜歡讓服務器有一個單一用途的筆尖,在這種情況下,它可以在那裏獲得一個表格視圖,並將其作爲一個分組樣式。我可能會嘗試手動添加tableview而不是使用tableview控制器。

+0

您在* loadView *方法中具有這些視圖控制器的加載代碼? – EmptyStack 2011-05-10 12:46:24

+0

我不明白你的問題是什麼?你是否遇到了要求解決方案的問題,或者缺少了什麼? – marzapower 2011-05-10 13:46:02

回答

0

提前加載標籤的視圖控制器可能需要在需要之前訪問self.view屬性。

如果發現自己的接入點是硬加一個斷點loadView,做一個假的過載僅在需要(視圖是從筆尖加載)調用[super loadView]。斷點堆棧跟蹤將顯示您強制執行負載的位置。

+0

我更新了問題。但爲了澄清,我叫控制器這就是過早地裝載的的loadView,並沒有似乎都被調用。我也搜索該控制器超,自我和看法,並沒有看到任何東西那不是默認值(如'[超級viewDidLoad中]') – 2011-05-10 15:34:01

+0

@Todd霍斯特 - 這似乎很奇怪,你編程方式更改選項卡中的'後的UITabBarController '的視圖已被添加到窗口?或者你有一個覆蓋'loadView'的子類,再一次,你用一個日誌來實現它嗎? – PeyloW 2011-05-10 15:41:11

1

它在代碼中更容易做到。標籤欄控制器接受數組中的視圖控制器,並且默認標籤欄控制器位於標籤欄控制器的第一個索引處。在viewDidLoad方法

 UITabBarController *tabBarController = [UITabBarController alloc] init]; 
     tabBarController.viewControllers=[NSArray arrayWithObjects:firstViewConoller,secondViewController,nil]; 
     [self.view addSubview : tabBarController.view]; 

將所有視圖相關的任務有時的loadView吉斯的問題,這可能是因爲你的viewController試圖加載的連連所以最好自稱將它們添加到viewDidLoad中一個新的視角。

相關問題