2013-05-02 82 views
0

我的應用程序與tabbarcontroller一起作爲窗口的根視圖,其中單擊每個選項卡項目會爲其裝載帶有所需視圖的splitviewcontroller。分割視圖的左右窗格是導航控制器。現在,在任何按鈕操作或在tableview中顯示相應的視圖都將在右窗格中加載。我成功地在右窗格中加載視圖,但是當在分割視圖的右窗格中加載新視圖控制器時無法顯示barbuttonitem。當uisplitviewcontroller的視圖發生變化時,不會顯示BarButtonItem

tabbarcontroller

- > splitviewcontroller

-----> Leftpane:導航控制器

--------------->視圖控制器

-----> Rightpane:導航控制器

--------------->視圖控制器

標籤欄的每個Splitview都會像'iPad Mail app'一樣行事。

爲了使應用程序生氣,我採取了類的RootiPadViewController具有uisplitviewcontroller和uipopovercontroller委託在slpitview加載所有視圖。

在分割視圖的右窗格中加載視圖控制器,如下所示。

UISplitViewController *splitViewController = (UISplitViewController*)[appDelegate.tabBarController.viewControllers objectAtIndex:tabIndex]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; 
//[navController pushViewController:viewController animated:YES]; 

NSMutableArray *array = [[NSMutableArray alloc] init]; 
[array addObject:[splitViewController.viewControllers objectAtIndex:0]]; 
[array addObject:navController]; 
splitViewController.viewControllers = array; 
[array release]; 

請告訴我爲什麼當在splitviewcontroller中更改視圖時,bar按鈕項不顯示。

應用程序看起來如下enter image description here

enter image description here

回答

0

我可能是錯的,但是從我的知識,當你在豎屏模式下欄按鈕項目應只出現,這是因爲:

  • 一分割視圖控制器有兩個控制器(主視圖控制器和詳細視圖控制器)
  • 當您處於橫向模式時,兩個視圖控制器都顯示在屏幕上
  • 當你在肖像模式中,僅示出了詳細視圖控制器,從而出現欄按鈕項
  • 欄按鈕項目的目標是讓你在縱向模式打開主視圖控制器

請讓我知道,如果這可以幫助你。

+0

我的意思是說barbuttonitem不以縱向模式顯示 – SriPriya 2013-05-02 07:08:28

0

對於導航控制器,每個視圖都應該定義它們的左右欄按鈕項,如果沒有定義,則該欄將爲空。唯一barbutton項目你會得到免費的是它出現時,你推一個新的視圖控制器的navigationController

的RootViewController的,你要不斷給它們分配在每個的viewController您viewDidLoad方法在NavigationControoler並設置回barbutton項目他們是正確的,你的parentViewController(即navigationController)的左barbutton項目

+0

嗨我添加引用爲self.navigationItem.leftBarButtonItem = barButtonItem;如果視圖是在肖像模式下 其中barbuttonitem是通過spliviewcontroller「willHideViewController ......」委託方法得到 – SriPriya 2013-05-02 07:40:24

0

請查看此示例項目https://github.com/alexth/TBSV

它是關於如何使用UISplitViewController內UITabBar。 所有的邏輯是在AppDelegate中的所有控制器的-loadSplitToTab只是總繼承,在UISplitViewController需要一個根(如蘋果的文件中描述的),你將無法使用UISplitViewController內UITabBar所有其他情況。

相關問題