2017-08-03 8 views
0

シナリオUITabBarController

  1. 私たちは、アプリでタブバーコントローラを持っています。

  2. ステータスバーのカラースタイルが異なるのは、1つのビューコントローラだけです。このビューコントローラをVC1と呼んでください。

  3. 私はロジックを追加しましたVC1、viewWillAppearは希望のステータスバーの色を設定し、viewWillDisappearはデフォルトのステータスバーの色をリセットします。

問題: 時間のほとんどは、さまざまなタブが別のビューコントローラを持っている、これはステータスバーの色の変化のない問題ではありません。

しかし、あるケースでは、私はVC1、この場合には、二つのタブに示されている必要があります、は私がリセットステータスバーのスタイルを意味タブviewWillAppear最初と呼ばれましたが、後でを呼ばれまし切り替えたとき、タブを切り替えた後、StatusBar Colorが間違っています。

これを解決する方法はありますか?このシナリオでは、ビューコントローラのライフサイクルが間違っているようです。

答えて

0

UITabBarControllerDelegateをご覧ください。これを使用して、VC内で行うのではなく、StatsBarの色を変更するなど、どのタブが選択されているかに基づいてアクションを実行できます。

にタブバーの動作を追加する場合は、UITabBarControllerDelegateプロトコルを使用します。具体的には、 を選択して特定のタブを選択するか、タブを選択した後に操作 を実行するか、 ユーザーがタブの順序をカスタマイズする前または後に操作を実行できます。

REF:https://developer.apple.com/documentation/uikit/uitabbarcontrollerdelegate

+0

私はあなたのアイデアを得る、それが動作するはずですが、私は唯一のタブに単純に依存しないスタイルからビューコントローラ上のロジックが特定のようにする必要があります。 –

関連する問題