は、私は2番目(特定のタブに切り替えると、アクションに来る任意の方法があります時間または第3の時間)。tabBarControllerのタブを切り替えると、どのメソッドが呼び出されますか?私はtabBarController</p>私はそれが私が知りたい、viewDidLoadメソッドを呼び出します初めてで知っ <p>でタブを切り替えるときにメソッドが呼び出されます
よろしく
は、私は2番目(特定のタブに切り替えると、アクションに来る任意の方法があります時間または第3の時間)。tabBarControllerのタブを切り替えると、どのメソッドが呼び出されますか?私はtabBarController</p>私はそれが私が知りたい、viewDidLoadメソッドを呼び出します初めてで知っ <p>でタブを切り替えるときにメソッドが呼び出されます
よろしく
あなたがUITabBarControllerDelegate
方法tabBarController:didSelectViewController:
を使用することができます。
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
//do something
}
これはかなり古いですが、それはGoogleで出てくるんや別の答えからリンクされています。だから私はそれを更新すると思った。
UITableBarControllerがUIViewController(つまりそのビュー)を表示している場合は、ビューが消えて表示されるときに起動するViewControllerメソッドをチェックする必要があります。 viewWillDisappearを使用すると、ビューが離れているかどうかを調べることができます。また、viewWillAppearを使用すると、ビューが戻ってきたかどうかをテストできます。 TabBarControllerは、通常、ViewControllerをロードしたままにしておきます。ビューの移動と移動だけです。TabBarDelegateメソッドを使用する際の問題は、依存関係になるviewControllerの名前を知る必要があることです。名前を変更すると、おそらくxcodeのクラス文字列表現の名前を変更する機能が壊れてしまいます。避けてください。あなたがそれを避けることができない限り、あなたのタブバーがちょうど特定のタブをロードしたかどうかを確認するために条件付きのジャンクチェックの束を望んでいない。他に注意すべきことは、特定のタブがTableViewControllerを提示している場合、セル内のデータが離れていることに応答して変更する必要がある場合は、他のテクニックに頼らなければならないかもしれないということです。私はwillMoveToWindow:(UIWindow *)newWindowを使用して、UITableViewCellのケースで通知が表示されなくなったときに表示を消しています。おそらくもっと良い方法があります。
方法viewWillDisappear:
は、ビューが表示されようとするたびにトリガされ、現在のビューコントローラ(したがって現在のタブ)とviewWillAppear:
を残して約されるたびにトリガされます。
これらの方法の完全な参照は、UIViewController文書に記載されています。