2011-09-28 69 views
2

我有一个模式视图,我在应用程序启动后显示。现在的问题是,模式的看法留下20个像素为状态栏(见图片)显示模态视图控制器时的双状态栏

​​

这是我的MyViewController看起来像在Interface Builder:

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

viewDidLoad callback我将视图设置为我的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]; 

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

+0

我也尝试在模式中打开'welcomeVC.navController'而不是'welcomeVC'这个没有多余的20px,但是我没有得到我需要设置翻译的'viewWillAppear'回调。 – Besi

+0

1.尝试删除IB中的状态栏。 2.尝试捕捉'viewDidLoad'并在那里设置翻译。 – Nekto

+0

@Nekto我试图删除IB中的状态栏。然而,它只是模拟你剩下多少空间... – Besi

回答

0

我发现将NavigationController直接添加到视图控制器并没有什么意义,因为NavigationController应该在ViewController之外定义,因为我的ViewController并不知道它是否会显示在导航控制器或模式弹出窗口,或者甚至可以在iPad上弹出。

所以我所做的是我为Welcome viewPlans view创建了两个单独的ViewControllers。这意味着它们更适用于仅显示任一视图的情况。

1

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

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

如果是这样,问题可能是一个子viewController正在调用模态,而父应该,意味着你的navController的主控人 - 而不是navController本身。

如果你的navController正在调用模态视图 - 只是一个观点 - 你为什么需要调用一个模态视图?将它作为视图推入堆栈,即与UINavigationController环境更兼容。

相关问题