5

だから私は iPhone 用のアプリを作成し、この回答の手順に従って iPad に変換したいと考えました。

  • iPhone ストーリーボードを複製し、名前を MainStoryboard_iPad.storyboard に変更します

  • このファイルを任意のテキスト エディタで開きます。

  • targetRuntime="iOS.CocoaTouch" を検索し、targetRuntime="iOS.CocoaTouch.iPad" に変更します。

  • すべてを保存して Xcode を再度開きます -> iPad ストーリーボードには iPhone ファイルと同じものが含まれていますが、すべてが乱れる可能性があります

すべてが正しく行われますが、iPad シミュレーター/デバイスはとにかく iPhone ストーリーボードを使用します。助言がありますか?

iPad ストーリーボードを概要 -> iPad 展開情報 -> メイン ストーリーボードに設定しました。また、main.plist-> Main ストーリーボード ファイルのベース名 (iPad) を iPad ストーリーボードに設定します。

私が欠けているものを教えてください。

UPD。興味深いことに、iPad のストーリーボード名を iPad の展開情報から削除しても、デバイスで iPhone のストーリーボードが引き続き使用されます。

ここに画像の説明を入力

ここに画像の説明を入力 ここに画像の説明を入力

ここに画像の説明を入力

4

2 に答える 2

4

プロジェクトのinfo.plistファイル(メインストーリーボードファイルベース名/メインストーリーボードファイルベース名(iPad))に次のものを追加することを忘れないでください

ここに画像の説明を入力してください

お役に立てれば。

于 2013-03-19T15:05:55.723 に答える
4

appDelegate で常に適切なストーリーボードを選択し、適切なルート ビュー コントローラーをプログラムで提示できます。

@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
    UIViewController *rvc;
}

実装

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"IPAD_Storyboard" bundle:nil];
       rvc = [storyboard instantiateViewControllerWithIdentifier:@"identifierForController"];
    }
    else {
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
       rvc = [storyboard instantiateViewControllerWithIdentifier:@"identifierForController"];
    }


    [self.window addSubview:rvc.view];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    return YES;
}
于 2013-03-19T15:14:27.443 に答える