2

タブバーベースのアプリケーション (iOS 7.1 SDK) があります。ユーザーが初めてアプリを起動したときに、ログイン画面を表示したい。ビュー コントローラー コンテインメントを使用することにしました (これは、タブ バー コントローラーの最初のビュー コントローラーで呼び出されます)。

LoginViewController *vc = [LoginViewController new];
[self.tabBarController addChildViewController:vc];
[vc didMoveToParentViewController:self.tabBarController];
[self.tabBarController.view addSubview:vc.view];

しかし、いくつかの問題があります。View は通常は表示されますが、LoginViewController では viewWillAppear と viewDidAppear が呼び出されることはありません。すべてのビュー ライフサイクル メソッド (viewDidLoad、viewWillAppear、viewDidAppear) でこのコードを使用しようとしましたが、うまくいきませんでした。私がやろうとしていることを達成するには、他にもいくつかの方法があることを知っています。たとえば、タブ バー コントローラーの最初のビュー コントローラーに子コントローラーを追加し、タブ バーを非表示にします。しかし、このため、私はさらに興味をそそられます.子ビューコントローラーをタブバーコントローラーに追加すると、期待どおりに機能しないのはなぜですか?

4

2 に答える 2

-2

それは働いている!

dispatch_async(dispatch_get_main_queue(), ^{
        [self.tabBarController setSelectedIndex:0];
        [self.tabBarController setSelectedIndex:1];
        [self.tabBarController setSelectedIndex:0];
    });
于 2016-02-17T09:58:21.383 に答える