7

我有選項卡欄,並在視圖「A」和在「A」我有導航控制器。所以在我的導航控制器中的「A」我叫如何在tabbar上顯示modalviewcontroller

[self presentModalViewController:modalView animated:YES] 

但modalView顯示在標籤欄下。如何在標籤欄上方顯示它?

回答

1

這樣做的原因是祖先的viewController設置不正確。 比如想象:

UIViewController * myController = ... // a view controller without a proper ancestor 

現在:

myController.tabBarController == nil 

因此:

[myController presentModalViewController:otherController]; 

將失敗(在標籤欄下方顯示出來)。解決方法是通過

[parentController addChildViewController:myController]; 

現在,parentController必須添加到另一個控制器以同樣的方式依此類推,直到根一個是你的tabController要添加myController的到它的祖先。這僅適用於iOS 5+。如果爲iOS 4或更早版本構建,則必須通過確保將所有控制器直接添加到UINav或UITab控制器來解決此問題。如果這是不可能的,你將不得不通過全局變量訪問UITabBarController。

+0

我使用的全局變量。謝謝 – 2012-09-13 08:37:15

14

嘗試從UITabBarController呈現模態的視圖:

​​
+0

模式視圖控制器都沒有顯示((( – 2012-07-29 12:44:39

+0

你tabBarController被顯示爲無在這裏。 – George 2012-09-12 19:14:46

1

在我的情況下提出的視圖控制器在.modalPresentationStyleUIModalPresentationStyle.CurrentContext,這使得tab bar重疊

+0

嗨,你能解決這個問題嗎?我面臨着同樣的問題:| – 2018-01-18 06:55:37

+0

@YashBedi,是的,我將模態演示風格設置爲默認風格。默認一個出事故 – Tim 2018-01-18 16:54:42

+0

ohkay kewl謝謝, – 2018-01-19 04:38:40

相關問題