2011-09-28 102 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環境更兼容。

相關問題