我有一个标签栏,其中包括视图“A”,而在“A”中我有一个导航控制器。所以在我的导航控制器中,在“A”中我调用了
[self presentModalViewController:modalView animated:YES]
模态视图显示在选项卡栏下面,如何使其显示在选项卡栏上面?
我有一个标签栏,其中包括视图“A”,而在“A”中我有一个导航控制器。所以在我的导航控制器中,在“A”中我调用了
[self presentModalViewController:modalView animated:YES]
尝试从 UITabBarController
弹出模态视图:
[self.tabBarController presentModalViewController:modalView animated:YES];
在我的案例中,模态窗口具有透明的背景。我设置了modalPresentationStyle
属性为.overFullScreen
,并使其显示在选项卡栏上方,背景清晰可见。
.modalPresentationStyle
的值为 UIModalPresentationStyle.CurrentContext
,导致了 tab bar
重叠。UIViewController * myController = ... // a view controller without a proper ancestor
现在:
myController.tabBarController == nil
[myController presentModalViewController:otherController];
会失败(在选项卡栏下显示)。解决方法是通过将myController添加到其祖先中来修复。
[parentController addChildViewController:myController];
parentController
添加到另一个控制器中,直到根控制器成为您的tabController。这仅适用于iOS 5+。如果构建iOS 4或更早版本,则必须通过确保所有控制器直接添加到UINav或UITab控制器来解决此问题。如果不可能,您将不得不通过全局变量访问UITabBarController。