2011-03-29 49 views
0

我正在使用iPad的基於導航的應用程序模板。我需要一個NavigationController在TableView中呈現我的播放列表層次結構。僅UINavigationController是全屏嗎?

本書不適用。沒問題。

Full Screen Navigaton Controller.

現在我想這個觀點只需要在屏幕的一部分,所以,在我的AppDelegate我說:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window.rootViewController = self.navigationController; 
    self.window.rootViewController.view.frame = CGRectMake(0,352,384,1024-352); 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

這工作。但是,現在標題欄與TableView的一部分重疊。

Crooked title bar when not fullscreen.

我可以向下移動表視圖,而且這將使在外觀上有些奇怪未來下一個視圖的「彈出式」動畫,因爲動畫將返回重疊的版本,然後進行動畫,然後在動畫完成後解除重疊。

我正在尋找一種方法來移動NC的標題欄。有任何想法嗎?

+0

我做類似的事情太多,而是選擇了向下移動表視圖。彈出式動畫並沒有那麼糟糕,除非您專門尋找它,否則我幾乎不會注意到它? – 2011-03-29 14:21:43

+0

我做了一些黑客攻擊。當設備旋轉時,這是一場噩夢。每次翻轉設備和「-viewWillAppear」時,您都必須進行補償。不惜一切代價避免它。 – bioffe 2011-03-29 16:38:15

回答

0

你不能只是設置調整rootViewController的大小,因爲屏幕會有空的區域! 您可以嘗試使用UISplitController或者從空視圖應用程序模板開始,然後根據需要添加UIView對象到您的XIB文件並根據需要進行佈局,然後將UINavigationController添加到其中一個而不是rootViewController。

+0

否定。不建議,但完全可行。這是'InterfaceBuilder'的黑暗面,讓人們忘記了事物的實際工作方式。 – bioffe 2011-03-29 16:41:23

+0

@bioffe絕對我同意你的看法,但是InterfaceBuilder更容易使用並且遵循MVC設計模式。 – 2011-04-07 07:16:26

0

試試這個

self.window.rootViewController.view.frame = CGRectMake(0,0,384,1024-352);