我有選項卡欄,並在視圖「A」和在「A」我有導航控制器。所以在我的導航控制器中的「A」我叫如何在tabbar上顯示modalviewcontroller
[self presentModalViewController:modalView animated:YES]
但modalView顯示在標籤欄下。如何在標籤欄上方顯示它?
我有選項卡欄,並在視圖「A」和在「A」我有導航控制器。所以在我的導航控制器中的「A」我叫如何在tabbar上顯示modalviewcontroller
[self presentModalViewController:modalView animated:YES]
但modalView顯示在標籤欄下。如何在標籤欄上方顯示它?
這樣做的原因是祖先的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。
嘗試從UITabBarController
呈現模態的視圖:
模式視圖控制器都沒有顯示((( – 2012-07-29 12:44:39
你tabBarController被顯示爲無在這裏。 – George 2012-09-12 19:14:46
在我的情況下提出的視圖控制器在.modalPresentationStyle
有UIModalPresentationStyle.CurrentContext
,這使得tab bar
重疊
嗨,你能解決這個問題嗎?我面臨着同樣的問題:| – 2018-01-18 06:55:37
@YashBedi,是的,我將模態演示風格設置爲默認風格。默認一個出事故 – Tim 2018-01-18 16:54:42
ohkay kewl謝謝, – 2018-01-19 04:38:40
我使用的全局變量。謝謝 – 2012-09-13 08:37:15