1

セットアップは次のとおりです。

1) シングル ビュー コントローラー - 初期 Cobntroller = ボタン付き。

2) 1 つのビュー コントローラーを備えたタブ バー コントローラー コントローラー - ラベル

ボタンを押すと、タブ ビューに切り替わります。

次に、prepareForSegue を使用して String を渡し、Tab Bar Controller 内の 1 View Controller のラベルを更新します。

これを行うと、

「認識できないセレクターがインスタンスに送信されました」。

そこで、Tab View Controller に移動します。

ただし、タブ内で ViewController を参照することはできません。

どうすればこれを修正できますか?

4

1 に答える 1

1

問題は、単一のビューから TabBarController にセグエできないことです。代わりに、次のようなコードを使用します。

- (IBAction)setupTapped:(id)sender {
    static NSString *tabViewControllerIdentifier = @"SetupViewController";  


    UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:tabViewControllerIdentifier];
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];

    UIViewController *currentController = app.window.rootViewController;
    app.window.rootViewController = controller;
    app.window.rootViewController = currentController;

    [UIView transitionWithView:self.navigationController.view.window
                      duration:0.75
                       options:UIViewAnimationOptionTransitionFlipFromRight
                    animations:^{
                        app.window.rootViewController = controller;
                    }
                    completion:nil];
}

これにより、コントローラー間で遷移します。目的に合わせてアニメーションの種類を変更できます。これは options パラメータで設定されます。現在 UIViewAnimationOptionTransitionFlipFromRight を表示しています。

「SetupViewController」は、TabViewController の ID インスペクター (右から 3 番目のアイコン) に入力されたストーリーボード ID (引用符なし) です。これは、入力した内容と一致するように変更できます。

于 2013-12-02T16:38:41.167 に答える