Как я могу превратить свое приложение для iPhone в универсальное приложение (совместимое с iPhone и iPad)? - PullRequest
1 голос
/ 23 декабря 2011

Я искал уроки о том, как сделать приложение для iPhone универсальным, чтобы оно работало на iPad.Однако, когда я попытался реализовать это, я немного застрял, так как Xcode изменил изрядное количество, и учебники кажутся устаревшими.До сих пор я сделал следующее:

Я обновил устройства, которые должны быть установлены на Universal:

enter image description here

Я также обновил свой класс делегата приложения следующим образом:

// Set up tab 1
TabOne_ViewController *tabOne = [TabOne_ViewController alloc];
UIViewController *tabOneViewController;

// Set up tab 2
TabTwo_ViewController *tabTwo = [TabTwo_ViewController alloc];
UIViewController *tabTwoViewController;

// Determine which UI to load for each tab
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController" bundle:nil];
    tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController" bundle:nil];
}
else
{  
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController(iPad)" bundle:nil];
    tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController(iPad)" bundle:nil];
}

Я также создал два дополнительных файла .xib:

  • TabOne_ViewController (iPad) .xib
  • TabTwo_ViewController (iPad) .xib

Наконец я попытался установить для класса TabOne_ViewController(iPad).xib значение TabOne_ViewController.h & TabOne_ViewController.m.А также TabTwo_ViewController(iPad).xib будет TabTwo_ViewController.h & TabTwo_ViewController.m.Однако я не смог этого сделать.

Я где-то ошибся?Есть ли дополнительные шаги, которые я пропустил?

РЕДАКТИРОВАТЬ:

Когда я имел в виду невозможность выбрать класс, который я имею в виду в IB:

enter image description here

Не имея возможности связать класс с файлом .xib, я не могу связать все IBOutlets & IBActions.

Ответы [ 2 ]

1 голос
/ 23 декабря 2011

В xib вы пытались изменить класс просмотра. Но вы должны изменить класс File's Owner

1 голос
/ 23 декабря 2011

Вы идете к цели, кликаете по проекту, подводите итог: Устройство: «Универсальный»

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController" bundle:nil];
}
else
{  
tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController(iPad)" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController(iPad)" bundle:nil];
}

Вместо этого кода вы попробуйте этот код следующим образом:

 UIDevice* thisDevice = [UIDevice currentDevice];
if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
{
    // iPad
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController(iPad)" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController(iPad)" bundle:nil];

}
else
{
    // iPhone
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController" bundle:nil];
}
...