クラスtabBarControllerがあり、そのselectedIndexプロパティが変更されるたびに、カスタムメソッドをトリガーしたいと思います。どうすればこれを達成できますか?
これは、tabBarControllerがhのインスタンス変数で宣言される方法です。
BaseViewController *tabBarController;
クラスtabBarControllerがあり、そのselectedIndexプロパティが変更されるたびに、カスタムメソッドをトリガーしたいと思います。どうすればこれを達成できますか?
これは、tabBarControllerがhのインスタンス変数で宣言される方法です。
BaseViewController *tabBarController;
UITabBarの -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem * )item
メソッドを使用して、タブのインデックスを決定し、その結果、呼び出したいメソッドを決定します。
これは、Key-Valueを観察するのに最適な候補です。基本的に、値が変更されると、通知が発生し、observers
変更についてその値を監視するように定義したすべてのユーザーによって通知が取得されます。自分自身とオブザーバーを確立してメソッドを実装すると、observeValueForKeyPath:
任意のメソッドを起動させることができます。
ここに良い出発点があります:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177-BCICJDHA
最初は少し気が遠くなりますが、適切に使用すると基本的に魔法になります。
編集:それが単純であるとは思わなかったUITabBarController
。はい、単にデリゲートメソッドを使用します。KVOはこれにはやり過ぎです。
セッターを作成します。
- (void)setSelectedIndex:(NSInteger*)integer
{
// Do stuff
selectedIndex=integer;
// Or: [super setSelectedIndex:integer];
}
使用delegate
方法-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem * )item