我意识到这里有很多关于制作通用应用程序的问题,但不是关于如何制作一个具有完全不同视图和功能的通用应用程序。我希望用户能够下载一个应用程序,但每个版本都完全不同。这样做的唯一方法是使用 if 语句,感知用户拥有什么设备,然后从那里加载正确的视图控制器(即在委托中,加载正确的第一个视图控制器)?谢谢
问问题
610 次
2 回答
5
于 2013-08-18T19:50:07.070 回答
2
这只是Apple的基本通用项目的完成启动方法:
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
} else {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
}
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
...但是,您可以为不同的界面习惯加载不同的视图控制器:
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.window.rootViewController = [[UIPhoneVersionViewController alloc] initWithNibName:@"UIPhoneVersionViewController" bundle:nil];
} else {
self.window.rootViewController = [[UIPadVersionViewController alloc] initWithNibName:@"UIPadVersionViewController" bundle:nil];
}
[self.window makeKeyAndVisible];
return YES;
}
...和violá,工作完成了。
于 2013-08-18T23:04:42.367 回答