如何在通用iPhone/iPad应用程序中的不同类之间切换?

问题描述:

我有一个特殊的类来管理手势和其他事情。它强烈针对iPhone。在iPad上,我需要该类别的90%不同行为,所以我想将MyController分成MyController_iPhoneMyController_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()宏来确定您所在的设备。