我试图构建我的第一个通用iOS应用程序使用基于窗口的应用程序的默认Xcode模板 - 并将设备系列设置为“通用”。 (我使用的是Xcode 4,但我相信这些模板与以前版本的Xcode几乎完全相同。)Xcode通用应用程序模板,并覆盖didFinishLaunchingWithOptions
这会创建一个共享应用程序委托以及特定的iPhone和iPad应用程序委托。
由于iPad将需要加载SplitViewController当应用程序启动,而iPhone将需要加载RootViewController的(表视图) - 我决定尝试重写didFinishLaunchingWithOptions方法在设备特定应用的代表,这样的为iPhone:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[super application:application didFinishLaunchingWithOptions:launchOptions];
RootViewController *rootViewController = (RootViewController *)[_navController topViewController];
rootViewController.context = [self managedObjectContext];
[_window addSubview:_navController.view];
return YES;
}
然而,由于Xcode中放置在“iPhone”或“iPad的”组设备特定应用程序的委托文件,我得到一个错误说未找到“RootViewController.h”文件。尽管试图导入它:
#import "RootViewController.h"
有没有办法解决这个问题,或者我完全错误地解决这个问题?我宁愿不将“RootViewController.h”文件移动到iPhone组中,因为我认为它也将用于iPad。
感谢您的答复。在我目前使用的应用程序中,“if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad)”在需要的地方......但我会在未来的应用程序中尝试其他方法。 – 2011-04-29 13:27:25