Dmi*_*iuk 8 objective-c uitabbarcontroller presentmodalviewcontroller ios
我有标签栏,在视图"A"和"A"我有导航控制器.所以我的导航控制器里面的"A"我叫了
[self presentModalViewController:modalView animated:YES]
Run Code Online (Sandbox Code Playgroud)
但modalView显示在标签栏下.如何在标签栏上方显示它?
Ser*_*nov 18
尝试从UITabBarController以下方式呈现模态视图:
[self.tabBarController presentModalViewController:modalView animated:YES];
Run Code Online (Sandbox Code Playgroud)
造成这种情况的原因是祖先viewController没有正确设置。例如想象一下:
UIViewController * myController = ... // a view controller without a proper ancestor
Run Code Online (Sandbox Code Playgroud)
现在:
myController.tabBarController == nil
Run Code Online (Sandbox Code Playgroud)
所以:
[myController presentModalViewController:otherController];
Run Code Online (Sandbox Code Playgroud)
将会失败(通过显示在选项卡栏下方)。解决方法是通过以下方式将 myController 添加到其祖先
[parentController addChildViewController:myController];
Run Code Online (Sandbox Code Playgroud)
现在,parentController必须以相同的方式添加到另一个控制器,依此类推,直到根控制器成为您的 tabController。此功能仅适用于 iOS 5+。如果针对 iOS 4 或更早版本构建,您必须通过确保所有控制器直接添加到 UINav 或 UITab 控制器来解决此问题。如果这是不可能的,您将必须通过全局变量访问 UITabBarController。
| 归档时间: |
|
| 查看次数: |
9571 次 |
| 最近记录: |