Как разработать универсальное приложение для iPhone + iPad без файлов xib? - PullRequest
0 голосов
/ 11 октября 2010

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

1) Могу ли я добавить свои разные классы контроллера представления в каталоги ресурсов для конкретного устройства? Или классы должны быть общими для обоих устройств?

2) Если мне нужно совместно использовать классы на обоих устройствах, какой самый безопасный способ условно загрузить classA или classB в зависимости от того, устройство это iPhone или iPad?

Ответы [ 2 ]

3 голосов
/ 20 июня 2011

1) Вы не можете добавить классы контроллера представления в двух местах, потому что во время компиляции один и тот же символ (то есть имя класса) будет найден в двух местах, и приложение не будет ссылаться.

2)Я бы сказал, что самым безопасным способом было бы иметь другой .xib, но если вы хотите, чтобы он работал просто из кода, вы могли бы создать менеджер одноэлементных представлений, который выполняет только правильную загрузку классов.Затем, в остальной части вашего кода, все, что вам нужно сделать, это: [MyViewManager sharedInstance] instantiateViewController:kMyDetailsView] и отобразить представление по вашему желанию.

Для определения текущего устройства вы можете использовать следующее утверждение: #define iPad [UIDevice currentDevice].userInterfaceIdiom==UIUserInterfaceIdiomPad.Он может быть включен в файл префикса, что делает его доступным для всего проекта.

1 голос
/ 11 октября 2010

На каждом контроллере представления вы можете проверить устройство, чтобы увидеть, на каком устройстве запущено ваше приложение, и, соответственно, построить свой пользовательский интерфейс.т. е. используйте только один набор контроллеров представления и в файлах * .m в цикле if-else создайте свой пользовательский интерфейс соответствующим образом.

См. этот пост для выполнения проверок устройства: Определение устройства (iPhone, iPod Touch) с iPhone SDK

PS: в своем if-else сделайте отметку if (iPad) {} ​​else {} в качестве наилучшей практики, поскольку зачастую люди этого не делают.не забудьте проверить, есть ли iPod Touch, если (iPhone) {} else {}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...