UITabBarControllerDelegate方法未被调用

One*_*ven 4 iphone objective-c uitabbarcontroller ios

我有一个标签栏控制器,它有4个标签,我想:当点击第4个标签(虚拟视图控制器)时,它将呈现一个新的视图控制器而不显示虚拟VC.

这是我的代码:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    NSLog(@"called");
    AskQuestionViewController *AQVC = [[AskQuestionViewController alloc]initWithNibName:@"AskQuestionViewController" bundle:nil];
    if (viewController == [tabBarController.viewControllers objectAtIndex:3])
    {
        [self presentViewController:AQVC animated:YES completion:nil];
        return NO;
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

在我的viewDidLoad方法中,我确实设置了委托.self.tabBarController.delegate = self;

但是,由于某种原因,这种方法没有被调用.有人可以帮忙吗?

One*_*ven 26

因为这个类是tabBarController,显然UITabBarController类没有名为tabBarController的属性.所以我只是设置self.tabBarController.delegate = selfself.delegate = self