4

ルート ビュー コントローラーとして tabbarcontroller を使用しています。残念ながら、新しいストーリーボード機能を使用すると、アプリの読み込み時にビュー コントローラー (ログイン ページ) をセグエするのが難しいことがわかっています。

以下のコードを使用しています。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;

    [tabBarController performSegueWithIdentifier:@"loginPage" sender:self];

セグエは適切に設定されています。タブビューコントローラーの1つに入り、IBActionを作成すると、正常にセグエされました。前もって感謝します。

4

2 に答える 2

9

今日、この同じ問題に遭遇しました。私は電話しなければなりませんでした:

[self.window makeKeyAndVisible];

[self.window.rootViewController performSegueWithIdentifier:@"LoginView" sender:self];

したがって、ストーリーボードを使用すると、 didFinishLaunchinWithOptions: が返された後に makeKeyAndVisible が発生すると想定しています。したがって、セグエを呼び出すと、画面上にないビューで発生します。

于 2011-11-24T17:16:48.373 に答える
1

私は最近同じ問題に遭遇しました。ただし、提供されたソリューションはうまくいきませんでした。

その理由は、「プッシュ」セグエを使用してログイン ビュー コントローラー (ナビゲーション コントローラー内に埋め込まれていた) を表示したためです。セグエのスタイルを「プッシュ」から「モーダル」に変更するとうまくいきました。どうやら、タブバーコントローラー内から「プッシュ」セグエを開始することはできず、ナビゲーションコントローラー内からのみ可能です。

なお、ラインは入れていません

[self performSegueWithIdentifier:@"LoginSegue sender:self];

アプリのデリゲートのメソッドdidFinishLaunchingWithOptions:didFinishLaunchingWithOptions:ではなく、メソッドでviewDidAppear:。そうすることで、次のコード行は不要になりました。

[self.window makeKeyAndVisible];

これが他の人に役立つことを願っています。

于 2014-11-25T13:16:29.260 に答える