2013-02-28 25 views
1

在UITpBarController與UISplitViewController(具有用於主視圖控制器的UITableViewController)一起使用UITabBarController時,我在iOS 6.1.2的iPad上遇到異常行爲。如果我有多個選項卡,其中至少有一個選項卡包含拆分視圖控制器,並且在查看包含拆分視圖控制器的選項卡時處於橫向模式,則切換到另一選項卡,然後移至縱向模式,然後按包含分割視圖控制器的選項卡,接下來會發生的情況是,主視圖控制器(一個表視圖控制器)將在明細視圖頂部顯示錶視圖,當它顯然不應該在那裏時。這種行爲僅在應用程序第一次加載時發生,但是是一致的行爲。包含UISplitViewController的UITabBarController不能正確處理iPad上的旋轉

通過簡單地創建一個項目,該項目是使用iPad設備和核心數據的分割視圖應用程序(不使用核心數據時不嘗試),因此很容易重新創建。創建項目後,使用故事板並添加一個標籤欄控制器,並將其設置爲初始視圖控制器,然後將標籤欄控制器中的視圖控制器序列添加到分割視圖控制器。在那之後,只有一個變化是在代碼是改變應用程序中的一個行必要中:didFinishLaunchingWithOptions在AppDelegate.m:

更改下面的模板代碼:

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController; 

要:

UITabBarController *tbc = (UITabBarController *)self.window.rootViewController; 
UISplitViewController *splitViewController = [tbc.viewControllers lastObject]; 

也許我打破了一些iOS規則,並試圖做一些我不應該做的事情?我想要做的就是能夠在幾個不同的分割視圖控制器之間進行選擇。建議?

回答

相關問題