Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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