Выполнять loadView for iPhone только в универсальном приложении

В настоящее время я портирую приложение iPhone на приложение iPad. Теперь на нескольких экранах приложения для iPhone весь пользовательский интерфейс выполняется с помощью кода на языке Visual Format Language. Теперь в iPad, поскольку пользовательский интерфейс отличается, я могу просто сделать это через Interface Builder. Теперь, как я могу выполнить приложение loadView только для iPhone, а не для iPad?

Я попробовал ниже вариант

#define IS_IPHONE UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone

#ifndef IS_IPHONE
- (void)loadView
{
    self.myView = [[MyCustomView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.view = self.myView;
}
#endif

- (void)viewDidLoad
{
    // my other code 
}

Но для iPhone loadView не вызывают. Непосредственно метод viewDidLoad выполняется.

Может кто-нибудь сказать мне, как я могу добиться этого? Заранее спасибо.

1 ответ

Вы можете сделать что-то вроде этого:

#define IS_IPHONE UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone   

- (void)loadView {
    if (IS_IPHONE)
    {
        self.myView = [[MyCustomView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        self.view = self.myView;
    }
    else {
        //other code
    }
}
Другие вопросы по тегам