0

クラスtabBarControllerがあり、そのselectedIndexプロパティが変更されるたびに、カスタムメソッドをトリガーしたいと思います。どうすればこれを達成できますか?

これは、tabBarControllerがhのインスタンス変数で宣言される方法です。

BaseViewController *tabBarController;
4

4 に答える 4

5

UITabBarの -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem * )itemメソッドを使用して、タブのインデックスを決定し、その結果、呼び出したいメソッドを決定します。

于 2012-04-11T20:44:58.833 に答える
3

これは、Key-Valueを観察するのに最適な候補です。基本的に、値が変更されると、通知が発生し、observers変更についてその値を監視するように定義したすべてのユーザーによって通知が取得されます。自分自身とオブザーバーを確立してメソッドを実装すると、observeValueForKeyPath:任意のメソッドを起動させることができます。

ここに良い出発点があります:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177-BCICJDHA

最初は少し気が遠くなりますが、適切に使用すると基本的に魔法になります。

編集:それが単純であるとは思わなかったUITabBarController。はい、単にデリゲートメソッドを使用します。KVOはこれにはやり過ぎです。

于 2012-04-11T20:45:05.417 に答える
0

セッターを作成します。

- (void)setSelectedIndex:(NSInteger*)integer
{
    // Do stuff
    selectedIndex=integer;
    // Or: [super setSelectedIndex:integer];
}
于 2012-04-11T20:45:05.703 に答える
0

使用delegate方法-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem * )item

于 2012-04-11T20:45:47.140 に答える