我有一个带有自定义TabBar控制器类的应用程序。
我试图实现标签栏控制器委托方法:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
NSLog(@"%i",tabBarController.selectedIndex);
}
但它不起作用。为什么?
用
ViewDidLoad
我写:self.tabBarController.delegate = self;
在.h中,我实现了:
@interface BaseViewController : UITabBarController <UITabBarControllerDelegate>
最佳答案
在您的自定义TabBarController中,不要使用
self.tabBarController.delegate = self;
但是用
self.delegate = self;
.tabBarController返回视图控制器层次结构中最接近的祖先,该视图控制器层次结构是标签栏控制器,但是自定义TabBarController是要定位的控制器,因此无需在其层次结构中进行搜索
关于ios - 无法使用TabBar委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9545126/