0

我有一个类 tabBarController ,每次它的 selectedIndex 属性发生变化时,我都想触发一个自定义方法。我该如何做到这一点?

这就是在 h 的实例变量中声明 tabBarController 的方式:

BaseViewController *tabBarController;
4

4 回答 4

5

使用 UITabBar 的 -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem * )item方法来确定选项卡的索引,从而确定您希望调用的方法。

于 2012-04-11T20:44:58.833 回答
3

这是键值观察的完美候选。基本上,当值更改时,会触发通知并由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 回答