4

誰かが説明できるかどうか(または正しい方向に向けてくれるかどうか疑問に思っています)

  1. ストーリーボードを使用しない場合、UIWindow をインスタンス化するためのコードはどこに消えますか? empty-application プロジェクト テンプレートでは、AppDelegate のアプリケーション didFinishLaunnching... にウィンドウが作成されます。

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

    ただし、ストーリーボードを使用する場合、上記のコードは省略されますが、明らかに UIApplication は開始するウィンドウを認識しています。

  2. どのストーリーボードから開始するかを知るために、アプリケーションが info.plist ファイルを検索する場所。

これはすべて、私が見つけられなかった場所で十分に文書化されていると確信しています。これを読んでくださいiPhoneアプリでインスタンス化されたUIWindowはどこですか? しかし、あまり役に立ちません。私はしばらくの間 iOS に携わってきましたが、今までアプリの最初の起動をいじる必要はありませんでした。ありがとう

4

2 に答える 2

8

「ストーリーボードを使用しているときにコードが消える場所」という意味だったと思います。

アプリケーションは、Info.plist の「メイン ストーリーボード ファイル ベース名」(UIMainStoryboardFile) キーに従ってストーリーボードをロードし、そのストーリーボードから、「Is initial View Controller」トグル セットを使用してビュー コントローラーをロードします。

編集: コメントで尋ねられたように、次のコード (xib ベースのアプリの初期読み込みと同様) を使用すると、アプリケーションの起動時に名前でストーリーボードを読み込んで表示できます。

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"StoryboardName" bundle:nil];
    UIViewController *viewController = [storyboard instantiateInitialViewController];
    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];
    return YES;
}
于 2012-10-16T06:14:26.957 に答える
0

ストーリーボードを使用している間、読み込まれるストーリーボードはアプリの Info.plist ファイルから取得されます。

Info.plist ファイルには、次のようなキーと値のペアを含むセクションがあります。

<key>UIMainStoryboardFile</key>
    <string>MainStoryboard</string>

この場合、MainStoryboard は、読み込まれる既定のストーリーボードの名前です。

于 2012-10-16T06:12:08.750 に答える