私はiOS用のObjective-cでプロジェクトを開発しており、UITabBarControllerのサブクラスを使用して複数のタブを持つビューがあります。各タブには、独自のUINavigationControllerがあります。ビューがタブに読み込まれると、適切なアクティブ化イベント(viewWillAppear、viewDidLoadなど)が発生します。ただし、別のタブをタップしてから戻ると、ビューはその特定のタブ(たとえば、viewDidLoad)の表示ビューになっているため、これらのすべてのイベントが再度発生するわけではありません。
私の質問はこれです:ウィンドウに表示されているビューが変更されたときに登録して通知を受け取ることができる通知または委任はありますか?私はいくつかの調査を行いましたが、これに固有のものは見つかりませんでした。私がやろうとしていることは:
- タブバーのインデックスが変更されたときに表示されるビューを確認します:tabBarController:didSelectViewController
- 各ナビゲーションコントローラーでこのイベントに登録します:navigationController:didShowViewController:animated:
これにより、タブを変更するか、タブのナビゲーションフロー内を移動して、visibleViewControllerが変更されるたびに通知を受ける必要があります(モーダルを除いて、この場合は気にしません。すでに処理されています)。
これは正しいアプローチですか?