1. ホーム
  2. アイオス

[解決済み】Storyboardsを使用して初期ビューコントローラをプログラム的に設定する

2022-04-02 20:45:49

質問

をプログラム的に設定するにはどうすればよいですか? InitialViewController を使用できますか?起動ごとに異なる条件によって、ストーリーボードを別のビューに開きたいのですが。

どのように解決するのですか?

方法 なく ダミーの初期ビューコントローラー

すべての初期ビューコントローラーにStoryboard IDを持たせる。

ストーリーボードで、最初のビューコントローラの "Is initial View Controller" 属性のチェックをはずします。

この時点でアプリを実行すると と表示されます。 :

<ブロッククオート

UIMainStoryboardFile 'MainStoryboard' のデフォルトビューコントローラのインスタンス化に失敗しました - おそらく指定されたエントリポイントが設定されていないのでしょう。

そして、app delegateのwindowプロパティがnilになっていることにお気づきでしょうか。

アプリの設定で、ターゲットに移動して Info タブをクリックします。そこで Main storyboard file base name . その上で General タブの値をクリアします。 Main Interface . これで警告は解除されます。

ウィンドウと必要な初期ビューコントローラを app delegate の application:didFinishLaunchingWithOptions: メソッドを使用します。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

    UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];

    return YES;
}