0

いくつかの異なる SKU を持つ iOS 製品があり、それぞれが異なるビュー コントローラーで開始する必要があります。ターゲットで区切られたさまざまな SKU があるため、そのバージョンの製品に必要なプリプロセッサを指定できます。

ただし、できるようにしたいことの 1 つは、Storyboard の「is initial View Controller」の値を変更して、さまざまな SKU を構築することです。自分が何であるかに応じて、ボックスを手動でオンまたはオフにする必要はありません。建物。

私の質問は、これをターゲットまたはプログラムで行うことができるかどうかです (特定の SKU プリプロセッサで #ifdef を使用してこれを行うことができます)。

前もって感謝します!

4

1 に答える 1

3

ストーリーボードで割り当てられた識別子を使用してコードで行う必要があります。ターゲット定義ヘッダー ファイルを作成するか#ifdef、AppDelegate.m の先頭で s を実行できます。

#ifdef TARGET_FOO
#define INITIAL_VC_ID @"FOO_ID"
[...]

次に、アプリのデリゲートで次のapplication:didFinishLaunchingWithOptions:ことができます。

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];

[window setRootViewController:[mainStoryboard instantiateViewControllerWithIdentifier:INITIAL_VC_ID]];

[window makeKeyAndVisible];

return YES;

これには、プロジェクトの Info.plist から「Main storybaord」参照を削除する必要があるため、UIKit はデフォルトでそれをロードしません。

于 2013-03-03T22:39:48.780 に答える