У меня есть проект, который изначально задумывался как приложение для iPhone, но теперь я хочу, чтобы он также поддерживал iPad. Я изменил цель проекта с iPhone на Universal, но я не знаю, как управлять обеими версиями пера, которые мне нужны сейчас, поскольку у меня уже есть пера, разработанные для iPhone. Я попытался загрузить одни и те же viewControllers с разными перьями в зависимости от устройства, но мне не разрешено устанавливать более одного элемента управления интерфейсом для одних и тех же выходов. Любая помощь? У меня Xcode 4.4.
Преобразование целевого приложения для iPhone в универсальное в Xcode
Ответы (3)
Это довольно легко. Для файлов раскадровки просто включите суффиксы _iPad
и _iPhone
. Например, если исходное имя раскадровки MyStoryboard.storyboard
, теперь у вас будут MyStoryboard_iPad.storyboard
и MyStoryboard_iPhone.storyboard
. Вы также можете установить файл раскадровки для каждого устройства в сводном представлении проекта.
Затем для файлов .xib включите суффиксы ~iPhone
и ~iPad
. ViewController.xib
становится ViewController~iPad.xib
и ViewController~iPhone.xib
Для начала вы можете просто создать дубликат существующих файлов .xib и переименовать их, чтобы они имели суффиксы iPad и iPhone. Затем измените содержимое каждого .xib по мере необходимости.
Что касается кода .m, вы можете проверить тип устройства и разветвить свой код. Мой подход заключается в определении макросов, которые идентифицируют тип устройства, например:
#define isDeviceIPad (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
#define isDeviceIPhone (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
Затем я просто использую эти макросы (которые возвращают логические значения) для написания кода, специфичного для типа устройства (например, для размещения или размеров определенного вида и т. д.).
Вы можете изменить только целевое устройство как iPhone / iPad, и вы можете использовать .xib
файл iPad:
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
//For navigate to iphone view
}
else{
//For navigate to ipad view
}
Добавьте еще 1 XiB, предназначенный для iPad, в каждый файл и во время навигации выберите Xib после проверки типа устройства с кодом, показанным выше.
Im not allowed to set more than one interface control to the same outlets
? - person CAMOBAP   schedule 20.11.2012