2016-06-28 7 views
-1

ドキュメントでは、選択したアイテムを再度クリックするとUITabBarControllerDelegateのdidSelectViewControllerメソッドが呼び出されます。didSelectViewControllerの動作は、アクティブなタブバーのアイテムをクリック/タップしたとき

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITabBarControllerDelegate_Protocol/index.html#//apple_ref/occ/intfm/UITabBarControllerDelegate/tabBarController:didSelectViewController:IOSのV3.0で

以降、タブバーコントローラは関係なく、選択されたビューコントローラが変化するかどうかのこのメソッドを呼び出します。また、タブバーのユーザータップへの応答としてのみ呼び出され、プログラムによってタブバーの内容が変更されたときに呼び出されることはありません。

私のテストによると、(iOS9でのテストではなく)アクティブなビューコントローラが変更されたときにのみメソッドが呼び出されます。だから私は何か間違っている?アクティブなタブバー項目のタップを検出する方法はありますか?

+0

何?ドキュメントは、「iOS v3.0以降では、選択したビューコントローラが変更されたかどうかに関わらず、タブバーコントローラがこのメソッドを呼び出す」と述べています。あなたのテストはドキュメントと一致しました! – Proton

+0

「選択したビューコントローラが変更されたかどうかに関係なく」は、ビューコントローラが変更されたときにのみ呼び出されることを意味しますか? – jptsetung

+0

申し訳ありません、私の間違い:( – Proton

答えて

0

OK、それは選択されたビューコントローラと同じであったときにメソッドdidSelectViewControllerが呼び出されなかった理由は、私はこの他のデリゲートメソッドは次のように実装されていたことだった。

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 
    return (viewController != tabBarController.selectedViewController); 
} 
関連する問題