我有一个带有自定义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/

10-13 08:24