如何在通用iPhone/iPad应用程序中的不同类之间切换?
问题描述:
我有一个特殊的类来管理手势和其他事情。它强烈针对iPhone。在iPad上,我需要该类别的90%不同行为,所以我想将MyController
分成MyController_iPhone
和MyController_iPad
。如何在通用iPhone/iPad应用程序中的不同类之间切换?
我该如何alloc-init取决于它是iPad还是iPhone?
答
你可以做一些事情大致如下:
MyController *controller = nil;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
controller = [[MyController_iPad alloc] init];
} else {
controller = [[MyController_iPhone alloc] init];
}
答
您可能要继承,比如说,iPad上的控制器。当你推送/呈现它时,检查你正在使用哪个平台,如果你使用的是iPad,则展示iPad子类,并修改其行为。您可以使用UI_USER_INTERFACE_IDIOM()宏来确定您所在的设备。