显示模态视图控制器时的双状态栏

时间:2011-09-28 09:39:31

标签: ios xcode uinavigationcontroller interface-builder

我有一个模态视图,我在应用程序启动后显示。现在的问题是模态视图为状态栏留下了20个像素(见图)

double status bar http://k.minus.com/j1vKSpCmFJXie.png

这是我的MyViewController在界面构建器中的样子:

IB-Layout http://k.minus.com/jbyZPICtsq0sMy.png

viewDidLoad回调中,我将视图设置为我的WelcomeVC视图:

- (void)viewDidLoad{
  [super viewDidLoad];
  self.view = self.navController.view; // navController is the outlet to my NavigationController in IB
}

我打开这样的模态:

MyViewController *welcomeVC = [[MyViewController alloc]init];
[self presentModalViewController:welcomeVC animated:YES];
[welcomeVC release];

如何摆脱视图和状态栏之间的这个空间?

2 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题。

您是否在navController中调用模态视图?

如果是这样,问题可能是一个子viewController正在调用模态,而父应该是,意思是rootViewController,托管你的navController - 而不是navController本身。

如果navController正在调用模态视图 - 只是一个意见 - 为什么需要调用modalView?将它作为视图插入堆栈,与UINavigationController环境更兼容。

答案 1 :(得分:0)

我发现将NavigationController直接添加到viewcontroller没有多大意义,因为NavigationController应该在ViewController之外定义,因为我的ViewController不必知道它是否会显示在NavigationController中或模拟弹出窗口,甚至可能是iPad上的Popover。

所以我所做的就是为Welcome viewPlans view创建了两个独立的ViewControllers。这意味着它们在仅显示任一视图的情况下也更普遍可用。