Я не мог найти хороший ответ нигде на это. Я использую UINavigationController для своего приложения для iPhone, со всем сгенерирован программно, ничто в Интерфейсном Разработчике. Я пытаюсь портировать свое приложение на iPad, с помощью UISplitViewController и моего существующего UINavigationController, но я не уверен, где у меня должна быть логика моей программы, разделяющей контроллеры представления для iPhone или iPad.
Я настраиваю свой основной файл для использования другого делегата приложения, или я использую того же делегата приложения, и пользовательский интерфейс условно настроили в нем?
Помимо этого, каждый раз, когда я пытаюсь скомпилировать свое приложение на средстве моделирования, оно не распознает UISplitViewController или даже условие, в которое я проверяю, существует ли класс.
Может нравиться, что кто-то указал мне дорогу, помня, что я не использую xibs?
Если вы хотите увидеть пример полностью программного интерфейса iPhone / iPad, в котором используется разделенное представление, вы можете загрузить исходный код моего приложения. Молекулы .
В этом приложении я использую одного делегата приложения, но настраиваю интерфейс по-разному, в зависимости от того, какая идиома пользовательского интерфейса присутствует (iPad или iPhone). Для iPhone я создаю экземпляр контроллера корневого представления, который управляет соответствующим интерфейсом для этого устройства. Для iPad я сначала создаю UISplitViewController и присоединяю его к корневому окну, затем создаю свой контроллер корневого представления для iPad и помещаю его в качестве подробного представления контроллера разделения представления (с контроллером навигации, который я использую для выбора элементов в качестве левый контроллер для разделения просмотра).
Опять же, я рекомендую посмотреть этот проект приложения, чтобы увидеть, как я это настраиваю программно. Код доступен по лицензии BSD, поэтому вы можете скопировать и вставить его в свое собственное приложение, если хотите.
Что касается ошибок компиляции, которые вы получаете, вам нужно будет перенести цель вашего приложения в универсальное приложение, используя пункт меню «Обновить текущую цель для iPad». Как только это будет завершено, установите SDK сборки на 3.2. Перейдите в настройки сборки вашего приложения и установите для параметра Deployment Target самую раннюю ОС, которую вы хотите поддерживать своим приложением (причем 3.0 - это самая дальняя точка, на которую вы можете пойти).
Наконец, вам нужно будет установить слабую ссылку на UIKit. О том, как это сделать, см. Мой ответ здесь . Слабое связывание фреймворков больше не требуется, если вы строите с использованием iOS 4.2 или более поздней версии SDK. Просто проверьте наличие соответствующих классов во время выполнения, проверив, возвращает ли их метод + class
nil
.