ジェスチャーなどを管理する特別なクラスがあります。iPhone を強くターゲットにしています。MyController
iPad では、そのクラスの 90% 異なる動作が必要なので、 と に分割したいと考えていMyController_iPhone
ますMyController_iPad
。
iPad か iPhone かに応じて、適切なクラスをどのように割り当てますか?
ジェスチャーなどを管理する特別なクラスがあります。iPhone を強くターゲットにしています。MyController
iPad では、そのクラスの 90% 異なる動作が必要なので、 と に分割したいと考えていMyController_iPhone
ますMyController_iPad
。
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() マクロを使用して、使用中のデバイスを判別できます。