最初は iPhone アプリを意図していたプロジェクトがありますが、今は iPad もサポートしたいと考えています。プロジェクトのターゲットを iPhone から Universal に変更しましたが、必要な両方のペン先バージョンを管理する方法がわかりません。既に iPhone 用に設計されたペン先があります。デバイスに応じて異なるペン先で同じviewControllerをロードしてみましたが、同じアウトレットに複数のインターフェースコントロールを設定することはできません。何か助けはありますか?私はXcode 4.4を持っています
3 に答える
とても簡単です。ストーリーボード ファイルの場合は、サフィックス_iPad
と_iPhone
サフィックスを含めるだけです。たとえば、元の絵コンテ名が の場合、と になりMyStoryboard.storyboard
ます。プロジェクトの概要ビューで、各デバイスのストーリーボード ファイルを設定することもできます。MyStoryboard_iPad.storyboard
MyStoryboard_iPhone.storyboard
次に、.xib ファイルの場合は、サフィックス~iPhone
と~iPad
サフィックスを含めます。
ViewController.xib
となりViewController~iPad.xib
、ViewController~iPhone.xib
まず、既存の .xib ファイルの複製を作成し、名前を変更して iPad と iPhone のサフィックスを付けることができます。次に、必要に応じて各 .xib の内容を変更します。
.m コードについては、デバイス タイプを確認してコードを分岐できます。私のアプローチは、次のようにデバイス タイプを識別するマクロを定義することです。
#define isDeviceIPad (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
#define isDeviceIPhone (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
次に、これらのマクロ (bool 値を返す) を使用して、デバイスの種類 (特定のビューの配置や寸法など) に固有のコードを記述します。
対象のデバイスのみを iPhone / iPad に変更し.xib
、iPad のファイルを使用できます。
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
//For navigate to iphone view
}
else{
//For navigate to ipad view
}
各ファイルに iPad 向けの XiB を 1 つ追加し、ナビゲーション中に、上記のコードでデバイスの種類を確認した後、Xib を選択します。