仅在Universal应用程序中执行loadView for iPhone

时间:2013-12-02 08:48:17

标签: ios conditional-statements ios-universal-app loadview

我目前正在将iPhone应用移植到iPad应用程序中。现在,在iPhone应用程序的几个屏幕中,所有UI都通过使用Visual Format Language的代码完成。现在在iPad中,因为UI不同,我可以通过Interface Builder轻松完成。现在,我的应用程序如何才能执行loadView for iPhone app&不适用于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 个答案:

答案 0 :(得分:0)

您可以这样做:

#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
    }
}