0

Iphone と Ipad の両方のユニバーサル アプリを作成しています。しかし、Iphone と Ipad の両方で同じクラスを使用する必要はありません。Iphone と Ipad ごとに個別のクラスが必要です。誰でもそれを行う方法を教えてもらえますか? 私はすでに Xcode 4 を使用してアプリを作成しました。しかし、そこで新しいプロジェクトを作成すると、両方のデバイスに対して 1 つのクラス ファイルと Nib が生成されます。私の目的のために、そのようにする必要はありません。

例:両方のデバイスにこの種のクラスファイルが必要です

IphoneviewController.h
IPhoneviewController.m

IPadviewController.h
IPadviewController.m

one Xib

UniversalviewController.xib

迅速な返信をお待ちしております。

4

2 に答える 2

0

applicationDidFinishLaunch で次のことを行うのはどうですか:

UIViewController * viewController;
if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) {
  viewController = [[IphoneviewController alloc] initWithNib: "UniversalviewController"];
} else {
  viewController = [[IPadviewController alloc] initWithNib: "UniversalviewController"];
}
//now use your VC however it is appropriate for your app, such as...
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];

ところで、MVC の議論に関しては、2 つのプラットフォームに 2 つの異なる viewController が必要であると仮定すると、ほとんどすべてのものを含む共有クラスを作成し、それをそれぞれにインポートしてから、何かを実装またはオーバーライドするだけで、共通のコードを共有できます。これは、iPad の特定のバージョンの iPad に固有である必要があります。

たとえば、IPadviewControllerの.hは次のとおりです...

#import "viewController_Shared.h"

@interface IPadviewController : viewController_Shared {

}
于 2012-05-03T05:19:18.967 に答える
0
BOOL isIPhone = (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad);

それを判断してから、別のクラスを使用して別のビューを表示します

追加:

申し訳ありませんが、アプリのビルドに xib|nib は使用していません。純粋なコードを使用していますが、2 つのビューコントローラーで 1 つの xib を使用することはできないと思います

ビューコントローラーごとに2つのxibを作成するか、上記のコードのようにコードを1つのビューコントローラーに結合するだけです

于 2012-05-03T02:30:05.917 に答える