我有一个类 tabBarController ,每次它的 selectedIndex 属性发生变化时,我都想触发一个自定义方法。我该如何做到这一点?
这就是在 h 的实例变量中声明 tabBarController 的方式:
BaseViewController *tabBarController;
我有一个类 tabBarController ,每次它的 selectedIndex 属性发生变化时,我都想触发一个自定义方法。我该如何做到这一点?
这就是在 h 的实例变量中声明 tabBarController 的方式:
BaseViewController *tabBarController;
使用 UITabBar 的 -(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem * )item
方法来确定选项卡的索引,从而确定您希望调用的方法。
这是键值观察的完美候选。基本上,当值更改时,会触发通知并由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