Я в процессе преобразования приложения для iPhone в универсальное приложение.
- Я изменил все настройки xCode и добавил новый MainWindow-iPad.xib
- Я подключил все ссылки на конструктор интерфейса (например, MainWindow-iPad к соответствующему классу iPad ViewController, окну и т. Д.)
Я добавил новый класс iPad для контроллера открытия представления, объявил его в своем файле AppDelegate.h и синтезировал их в моем файле AppDelegate.m:
UIWindow * window;
UIWindow * windowiPad;
AppViewController * viewController;
AppViewControlleriPad * viewControlleriPad;
в делегате приложения я проверяю, на каком устройстве я работаю, и загружаю соответствующий класс:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// Override point for customization after application launch.
navController = [[UINavigationController alloc] initWithRootViewController:viewControlleriPad];
// Add the view controller's view to the window and display.
[windowiPad addSubview:navController.view];
[windowiPad makeKeyAndVisible];
[navController setNavigationBarHidden:YES animated:NO];
} else {
//I am an iPhone!
// Override point for customization after application launch.
navController = [[UINavigationController alloc] initWithRootViewController:viewController];
// Add the view controller's view to the window and display.
[window addSubview:navController.view];
[window makeKeyAndVisible];
[navController setNavigationBarHidden:YES animated:NO];
}
И все, кажется, работает нормально - за исключением того, что он по-прежнему загружает файл iPhone nib / xib AppViewController.xib вместо AppViewControlleriPad.xib. Вы можете запросить дополнительную информацию, но я не могу понять, как заставить его загружать AppViewControlleriPad.xib при запуске iPad, а не iPhone / оригинального xib-файла.
Я подумал, возможно, наивно, что если файл xib имеет то же имя, что и класс контроллера представления, то ViewController будет использовать его в качестве xib.
Как я могу это исправить, чтобы загрузить правильное XIB для правильного устройства?