MainWindow.xib和iPhone 5(4英寸显示屏)

时间:2012-09-21 15:53:02

标签: iphone ios cocoa-touch uiviewcontroller

我有一个通用应用程序,我正在尝试为iPhone 5做好准备。 但是,我遇到了窗口大小不正确的问题。这可能与我对MainWindow.xib的设置有关,并且可能一直有效,可能因为只有一种尺寸。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
viewController = [[DORootViewController alloc] initWithNibName:@"MainWindow" bundle:nil];
[self.window setRootViewController:[viewController autorelease]];
[self.window makeKeyAndVisible];  

我有一个UIView(有孩子)。这连接到'rootViewController'的视图(一个UIViewController),它被设置为窗口的rootViewController。到目前为止一切正常,但在4“屏幕上我的导航控制器和屏幕上的位置有问题。这个导航控制器被添加到rootViewController,因为rootViewController有一个背景,在整个应用程序中使用

[self setNavigationController:[[[UINavigationController alloc] initWithRootViewController:menuView] autorelease]];
[[[self navigationController] view] setOpaque:YES]; 
[[self view] addSubview:[_navigationController view]]; 

我读过人们有类似的问题,并且通过在MainWindow.xib中设置一个Window来修复它。我试过了,它解决了NavigationController问题,但是当我用[self dismissMoviePlayerViewControllerAnimated]显示电影时,App引入了崩溃的问题;我假设因为连接的窗口不是视图。

在我看来,导航控制器没有正确添加到窗口的边界。但为什么会这样呢?结果是不可预测的,有时看起来很好,有时在iOS 5和iOS 6(在模拟器中)都存在水平偏移。

任何人有任何建议。

Toolbar in middle screen on 3.5"

Toolbar and status bar a bit too low on 4"

[编辑:更新了更多详细信息和屏幕截图错误的位置]

1 个答案:

答案 0 :(得分:0)

尝试替换此行:

[[self view] addSubview:[_navigationController view]]; 

使用:

[self presentModalViewController:_navigationController animated:NO];