0

我正在將iPhone應用程序轉換爲在iPad上工作。在這種情況下,用戶界面是使用界面構建器創建的。根控制器的接口(在索引0處),在此由佈局選項卡控制器&導航控制器的:UISplitViewController - willShowViewController未觸發

  • 標籤控制器
  • 導航控制器1
  • 導航控制器2
  • 導航控制器3

我一直在實施這件事。作爲第一步,當我設置Tab Controller &導航控制器1時,一切正常。 willHideViewController & willShowViewController正常工作。我的界面正確地從SplitView切換到Popover。當我添加導航控制器2時,willHideViewController & willShowViewController永遠不會觸發&無論iPad在模擬器中的方向如何,我總能看到Popover控制器。

當我添加第二個導航控制器時,是否還有其他需要在界面構建器中關聯以使界面正常工作?

回答

0

我猜你已經設置了第一個導航控制器的代表,但第二個沒有。委託對象會接收像willHideViewController這樣的方法。

我也不確定擁有多個導航控制器是不錯的風格。視圖控制器知道它已放置在導航控制器中,並且可以使用self.navigationController訪問它。您應該繼續將視圖控制器放在同一個導航控制器上。或者我可能誤解了你想用你的標籤控制器做什麼。

+0

我使用由Xcode 4生成的splitView模板作爲將iPad支持添加到我的項目的基礎。在這個splitView模板中,處理willShowViewController/willHideViewController的委託是DetailViewController。我相信這個委託是正確實現的,因爲當RootController只不過是一個tabController而已經實現了一個標籤的時候,所有東西都能正常工作。當我向RootController添加第二個選項卡時,當事情停止工作。當我刪除額外的選項卡時,所有事情都會重新開始。 – russes

+0

順便說一句,有3個導航控制器,每個標籤欄中的標籤。選擇標籤後,該標籤的導航控制器最終會推送視圖控制器以最終選擇一個項目。所以,我很確定我正確地使用控制器。該實現可以像iPhone應用程序一樣正常工作。我只看到問題,當我嘗試使iPhone界面正常工作的splitView。 – russes

+0

另外一點信息:導致(根)splitView出現問題的選項卡是使用Stanford課程資料中提供的CortDataTableViewController類實現核心數據表的選項卡。當這個類被添加到筆尖時,事情就會失敗。刪除它,東西正常工作。 – russes

0

這個問題的答案很簡單:當你實現你想要的一切,從縱向到橫向正確切換拆分視圖控制器&,你需要確保所有的界面元素實現shouldAutorotateToInterfaceOrientation肖像&景觀佈局。