使用if语句为设备声明不同的类

时间:2013-08-03 18:24:37

标签: ios objective-c

是否可以编写如下内容?

//  MasterViewController.h

#import <UIKit/UIKit.h>

if (device == iPad)
    @interface MasterViewController : UIViewController
else
    @interface MasterViewController : UITableViewController

换句话说,通用应用程序是否可能成为不同视图控制器的子类,具体取决于设备?

1 个答案:

答案 0 :(得分:5)

不要尝试创建这样的单个类,而是创建2个类:

@interface MasterViewController_iPhone : UIViewController

@interface MasterViewController_iPad : UITableViewController

然后在您的代码中使用设备惯用法来决定实例化哪一个:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    // create a MasterViewController_iPhone
} else {
    // create a MasterViewController_iPad
}