0

我正在使用故事板并UITabBarViewController作为我的导航控制器。我需要的是使用shouldSelectViewController作为委托 UITabBarControllerDelegate 一部分的方法。

我不确定如何在我的CustomUiTabBarController.

我试图定义这样的接口:

@interface CustomTabBarController : UITabBarController <UITabBarControllerDelegate>

然后我实现了这个:

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
//nothing yet
}

但是,当我单击选项卡时,不执行 shouldSelectViewController 。我也无法在我的故事板中将 CustomTabBarController 类设置为 TabBar 的代表,因为它会导致异常。

我显然在这里泄露了一些 iOS 不理解。请协助。

4

1 回答 1

2

首先,从应用程序的视图控制器流中获取 UITabbarController 的对象。然后在 appDelegate 中创建一个 tabbarcontroller 的属性并分配它的值,例如,

if([viewController isKindOfClass:[UITabBarController class]]){
            UITabBarController *objTabbarController = (UITabBarController *) viewController;
            self.objTabbarController = objTabbarController;
            self.objTabbarController.delegate = self;
        }

分配委托给它,

@interface AppDelegate : UIResponder <UIApplicationDelegate,UITabBarDelegate>

并在 AppDelegate.m 文件中实现方法

shouldSelectViewController刚刚return YES;

并且在

 - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    NSLog(@"tab selected index %d",tabBarController.selectedIndex);
}
于 2013-06-20T12:27:40.150 回答