Как сделать iPhone и iPad версию приложения?
Я пытаюсь создать приложение, которое работает как на iPhone, так и на iPad. Я смотрю, как сделать интерфейс совместимым с обоими. Когда приложение загружается, я показываю табличное представление. Как я могу загрузить различные наконечники на основе устройства? Я использую это для переключения между наконечниками.
if ([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)])
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
device = @"iPad";
}
else
{
device = @"iPhone";
}
}
Но в MainWindow.xib говорится, что представление загружается из контроллера вида для iPhone. Могу ли я сделать эту динамику на основе устройства? т.е. я хочу показать с начала приложения разные наконечники на основе устройства.
Спасибо.
Ответы
Ответ 1
На самом деле Apple делает все это автоматически, просто назовите свои файлы NIB:
MyViewController~iphone.xib // iPhone
MyViewController~ipad.xib // iPad
и загрузите контроллер вида с наименьшим количеством кода:
[[MyViewController alloc] initWithNibName:nil bundle:nil]; // Apple will take care of everything
Ответ 2
Вы можете сделать это аналогичным образом:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
mainMenu = [[MainMenu alloc] initWithNibName:@"MainMenuiPad" bundle:nil];
}else{
mainMenu = [[MainMenu alloc] initWithNibName:@"MainMenu" bundle:nil];
}
Ответ 3
Для создания универсального приложения
1-set целевое семейство на вкладке создания информации для приложения в качестве iPhone/iPad.
2- Удалить окно из главного окна.
3 Добавьте два xib для iPhone и один для iPad (выбрав iPad xib).
4 создайте класс appDelegate как файл контроллера для этих xib.
5- Добавить окно на эти xibs и просмотреть контроллер или контроллер навигации, а также IB Inspector установить имя загрузочного ниба и файл контроллера здесь, который является вашим первым представлением.
6- И затем сделайте differnet xib для iPad и iPhone, у которых есть просмотр таблиц или другие элементы управления.
7. Создайте файл одиночного контоллера или другой файл с несколькими файлами для разных устройств. Для этого нужно проверить устройство, если это условие else
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
8 - Теперь вам нужно загрузить xib в класс appDelegate в методе didFinishL -
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
// load your nib for iPad here which having view controler or navigation controller as well window.
}else{
//load nib for iPhone.
}
Ответ 4
Попробуйте это в Info.plist
:
Основное имя файла nib [NSMainNibFile
]: MainWindow_iPhone
Основное имя файла nib (iPad) [ NSMainNibFile~ipad
]: MainWindow_iPad
Надеюсь, это поможет вам.