0

在以前的 Xcode 版本中,创建基于窗口的通用应用程序将使用 iPhone 和 iPad 特定文件填充项目并分配适当的入口点。所需要的只是修改 iPhone/iPad 控制器/xib 以创建设备特定的接口。

遗憾的是,XCode 4.3 不再提供基于窗口的模板(最接近的是空应用程序),我不知道如何正确配置入口点。使用storyboard是相当困难的,但我想使用程序化或基于 xib 的工作流程来做到这一点。

我创建了两个视图控制器和 xib:HomeViewController_iPhoneHomeViewController_iPad. 只需将每个设备的入口点设置为适当的 HomeViewController 就会使应用程序崩溃。我怀疑我需要做更多的事情来子类化应用程序委托,但我不太确定如何继续。任何指针?

4

1 回答 1

2

这就像我在使用导航控制器时所做的一样。根据设备,代码会加载正确的 xib。这didFinishLaunchingWithOptionsAppDelegate.m. navigationController是一个属性AppDelegate.h

UIViewController *rootViewController;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    rootViewController = [[HomeViewController_iPhone alloc] initWithNibName:@"HomeViewController_iPhone" bundle:nil];
}
else {
    rootViewController = [[HomeViewController_iPad alloc] initWithNibName:@"HomeViewController_iPad" bundle:nil];
}

navigationController = [[UINavigationController alloc]
                 initWithRootViewController:rootViewController];

self.window = [[UIWindow alloc] 
               initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];
return YES;

希望它有助于解决问题!

于 2012-04-02T15:56:37.423 回答