Преобразование приложения iPhone в универсальное приложение? - PullRequest
3 голосов
/ 10 августа 2011

У меня есть приложение для iPhone с FirstViewController и SecondViewController с соответствующими представлениями FirstView.xib и SecondView.xib.

Теперь я хочу, чтобы это приложение работало как с iPhone, так и с iPad.Для iPad мне нужно объединить Firstview.xib и SecondView.xib в один ThirdView-iPad.xib.

Какой будет наилучший подход?Нужно ли мне писать еще один класс ViewController для iPad или я могу использовать существующие FirstViewController и SecondViewController с одним xib?

Мои исследования пока говорят, чтонет никакого способа использовать несколько ViewControllers с одним XIB.Пожалуйста, дайте мне знать лучший способ сделать это.

Спасибо

Ответы [ 3 ]

5 голосов
/ 10 августа 2011

если вы используете Xcode4, вы можете использовать «переход к универсальной цели», и он сделает все необходимое

http://xcodebook.com/2011/05/making-an-ios-target-universal/

если у вас его нет, то я рекомендую держать контроллеры вне вашей xib. xib-файлы будут содержать только представления для iphone и ipad, но контроллеры «могут» быть одинаковыми. и вы можете управлять своей логикой с помощью rootviewcontroller, просто идея ... все зависит от вашего проекта.

3 голосов
/ 10 августа 2011

Лучше всего просто создать новый ViewController, если вы не увлечены мазохизмом.Повторное использование таким образом, скорее всего, доставит много хлопот, и я бы пошел на агрегацию или наследование в случае, если вам необходимо повторно использовать логику в ваших ViewControllers.

Обычно я создаю базовый ViewController, скажем XYZViewControllerа затем создайте XYZViewController_iPhone со всеми iPhone-специальными предложениями и отдельный XYZViewController_iPad для iPad.Но если они совершенно разные, я даю им уникальные имена и их собственные NIB, а также ViewControllers.

1 голос
/ 20 августа 2011

Существуют следующие правила для преобразования приложения Iphone в приложение Univarsal

1) В файл Plist Добавить NSMainNibFile ~ ipad .... MainWindow_ipad (окно ipad).

2) Реализация отдельных имен Xibs (Iphone & ipad)

3) в семействе целевых целевых устройств, установленном на (iphone / ipad) и установите рамки в соответствии с Ipad и iphone Например

если (UI_USER_INTERFACE_IDIOM () == UIUserInterfaceIdiomPad) {

btnHme.frame = CGRectMake (971,6, 32, 32); // Ipad

} еще {

btnHme.frame = CGRectMake (438,6, 32, 32); // iphone

}

ура

...