В моем приложении я делаю это так.Я создаю отдельные файлы .h, .m и XIB для представлений iPad, а затем в AppDelegate просто задаю условие if, которое решает, какой контроллер представления будет отображаться.
Кстати.Я не использую эти суффиксы на XIB, я называю их так, как хочу.
Мой файл AppDelegate.h (его часть)
@class FirstViewController;
@class FirstIpadViewController;
.......
.......
@property (nonatomic, retain) IBOutlet FirstViewController *viewController;
@property (nonatomic, retain) IBOutlet FirstIpadViewController *ipadViewController;
Мой файл AppDelegate.m (его часть)
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
} else {
self.window.rootViewController = self.ipadViewController;
[self.window makeKeyAndVisible];
}
Это определенно должноЭто.Просто измените класс и свойство в файле .h на ваш контроллер представления, и вы должны быть в порядке:)
РЕДАКТИРОВАТЬ
Я только что узнал, каксделать это.А правильные соглашения об именах - это _iPhone и iPad.Это в основном то же самое, что я опубликовал выше, единственное изменение состоит в том, что он будет иметь те же файлы .h и .m, но разные XIB.
В файле 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;
}