2010-12-13 11 views

答えて

3

あなたがUITabBarControllerDelegate方法tabBarController:didSelectViewController:を使用することができます。

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    //do something 
} 
1

これはかなり古いですが、それはGoogleで出てくるんや別の答えからリンクされています。だから私はそれを更新すると思った。

UITableBarControllerがUIViewController(つまりそのビュー)を表示している場合は、ビューが消えて表示されるときに起動するViewControllerメソッドをチェックする必要があります。 viewWillDisappearを使用すると、ビューが離れているかどうかを調べることができます。また、viewWillAppearを使用すると、ビューが戻ってきたかどうかをテストできます。 TabBarControllerは、通常、ViewControllerをロードしたままにしておきます。ビューの移動と移動だけです。TabBarDelegateメソッドを使用する際の問題は、依存関係になるviewControllerの名前を知る必要があることです。名前を変更すると、おそらくxcodeのクラス文字列表現の名前を変更する機能が壊れてしまいます。避けてください。あなたがそれを避けることができない限り、あなたのタブバーがちょうど特定のタブをロードしたかどうかを確認するために条件付きのジャンクチェックの束を望んでいない。他に注意すべきことは、特定のタブがTableViewControllerを提示している場合、セル内のデータが離れていることに応答して変更する必要がある場合は、他のテクニックに頼らなければならないかもしれないということです。私はwillMoveToWindow:(UIWindow *)newWindowを使用して、UITableViewCellのケースで通知が表示されなくなったときに表示を消しています。おそらくもっと良い方法があります。

0

方法viewWillDisappear:は、ビューが表示されようとするたびにトリガされ、現在のビューコントローラ(したがって現在のタブ)とviewWillAppear:を残して約されるたびにトリガされます。

これらの方法の完全な参照は、UIViewController文書に記載されています。

関連する問題