【发布时间】:2014-05-26 22:07:10
【问题描述】:
当我的应用在 iPad 上运行时,我想为我的根视图加载不同的 .xib。正如您从下面的代码中看到的那样,我尝试执行此操作,但是发生的情况是线程进入了正确的 if 语句,因此它识别出它是 iPad,但是当视图加载时,它会加载 iPhone 版本的视图。
这是我的代码,我试图在应用程序委托中决定为 rootView 加载哪个 nib:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Add status bar
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
self.window.rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewControlleriPad" bundle:nil];
} else {
self.window.rootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
}
self.window.rootViewController = self.navigationController; //Adds RootViewController to the NavigationController interface
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]}; // navigation titles
self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; // navigation buttons
【问题讨论】:
-
你注意到你的代码了吗,你一直在两个不同的地方设置根视图控制器。如果您删除代码以在 if else 条件之外设置根视图控制器,它应该可以正常工作。
-
将视图正确添加到窗口,但不会将窗口添加到导航控制器。
标签: ios iphone objective-c ipad nib