Как я делаю универсальный iPhone / приложение для iPad, которое программно использует UISplitViewController и UINavigationController?

Я не мог найти хороший ответ нигде на это. Я использую UINavigationController для своего приложения для iPhone, со всем сгенерирован программно, ничто в Интерфейсном Разработчике. Я пытаюсь портировать свое приложение на iPad, с помощью UISplitViewController и моего существующего UINavigationController, но я не уверен, где у меня должна быть логика моей программы, разделяющей контроллеры представления для iPhone или iPad.

Я настраиваю свой основной файл для использования другого делегата приложения, или я использую того же делегата приложения, и пользовательский интерфейс условно настроили в нем?

Помимо этого, каждый раз, когда я пытаюсь скомпилировать свое приложение на средстве моделирования, оно не распознает UISplitViewController или даже условие, в которое я проверяю, существует ли класс.

Может нравиться, что кто-то указал мне дорогу, помня, что я не использую xibs?

12
задан Brad Larson 9 May 2010 в 14:03
поделиться

1 ответ

Если вы хотите увидеть пример полностью программного интерфейса iPhone / iPad, в котором используется разделенное представление, вы можете загрузить исходный код моего приложения. Молекулы .

В этом приложении я использую одного делегата приложения, но настраиваю интерфейс по-разному, в зависимости от того, какая идиома пользовательского интерфейса присутствует (iPad или iPhone). Для iPhone я создаю экземпляр контроллера корневого представления, который управляет соответствующим интерфейсом для этого устройства. Для iPad я сначала создаю UISplitViewController и присоединяю его к корневому окну, затем создаю свой контроллер корневого представления для iPad и помещаю его в качестве подробного представления контроллера разделения представления (с контроллером навигации, который я использую для выбора элементов в качестве левый контроллер для разделения просмотра).

Опять же, я рекомендую посмотреть этот проект приложения, чтобы увидеть, как я это настраиваю программно. Код доступен по лицензии BSD, поэтому вы можете скопировать и вставить его в свое собственное приложение, если хотите.

Что касается ошибок компиляции, которые вы получаете, вам нужно будет перенести цель вашего приложения в универсальное приложение, используя пункт меню «Обновить текущую цель для iPad». Как только это будет завершено, установите SDK сборки на 3.2. Перейдите в настройки сборки вашего приложения и установите для параметра Deployment Target самую раннюю ОС, которую вы хотите поддерживать своим приложением (причем 3.0 - это самая дальняя точка, на которую вы можете пойти).

Наконец, вам нужно будет установить слабую ссылку на UIKit. О том, как это сделать, см. Мой ответ здесь . Слабое связывание фреймворков больше не требуется, если вы строите с использованием iOS 4.2 или более поздней версии SDK. Просто проверьте наличие соответствующих классов во время выполнения, проверив, возвращает ли их метод + class nil .

20
ответ дан 2 December 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: