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

MainWindow.xib和iPhone 5(4英寸显示屏),iphone,ios,cocoa-touch,uiviewcontroller,Iphone,Ios,Cocoa Touch,Uiviewcontroller,我有一个通用的应用程序,正在尝试为iPhone5做准备。 但是,我遇到了一个窗口大小不正确的问题。这可能与我对MainWindow.xib的设置有关,并且可能一直有效到现在,可能因为只有一种尺寸 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; viewController = [[DORootViewController alloc] initWithNibName:@"MainWind

我有一个通用的应用程序,正在尝试为iPhone5做准备。 但是,我遇到了一个窗口大小不正确的问题。这可能与我对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];  
我(和孩子们)有一个共同的看法。这连接到“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中设置一个窗口来解决。我尝试了这一点,它解决了NavigationController问题,但引入了一个问题,即当我使用[self DismissMoviePlayServiceWControlleranimated]放映电影时,应用程序崩溃;我认为这是因为连接的窗口不是视图

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

任何人都有任何建议


[编辑:更新了更多细节和屏幕截图,其中条形图位于错误的位置]

尝试替换此行:

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


尝试替换此行:

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