прекомпилятор для ipad - PullRequest
       3

прекомпилятор для ipad

0 голосов
/ 17 сентября 2010

Привет всем,

В xcode я пытаюсь загрузить другой nib-файл, если я использую iphone / ipod или ipad.

У меня есть файл Define.h со всеми перечислениями и константами в нем, поэтому я бы хотел добавить туда что-то вроде (очевидно, неправильное, потому что я не знаю, как это сделать):

#if IPHONE  // <-- can I intercept the Active Executable here ?
  #define MY_VIEW @"TableViewIphone.xib"
#else
  #define MY_VIEW @"TableViewIpod.xib"
#endif 

Тогда, на мой взгляд, контроллеры, которые включают Define.h

[[NSBundle mainBundle] loadNibNamed:MY_VIEW owner:self options:nil];

Мне нужно сделать это с помощью симулятора устройства, есть ли способ перехватить то, что находится в «Активном исполняемом файле» в xcode, и иметь специальный набор определения? Есть ли другие и более простые альтернативы?

спасибо

1 Ответ

1 голос
/ 17 сентября 2010

Что вы хотите сделать, это выбрать xib в время выполнения , соответствующее устройству.

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

Я предполагаю, что вы создаете приложение Universal, да?

Я предпочитаю иметьустройство загружает соответствующий xib при запуске моего приложения, используя соответствующий ключ в файле Info.plist моего приложения, который является ключом NSMainNibFile~ipad.(например, я установил NSMainNibFile~ipad в MainWindow-iPad ... примечание: без бита ".xib")

Другой альтернативой является использование макроса UI_USER_INTERFACE_IDIOM:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    // Load iPad xib
}
else
{
    // Load iPhone xib
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...