Как сделать 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

Надеюсь, это поможет вам.