我有一个带有4个选项卡的选项卡栏 Controller ,我想要:当点击第四个选项卡(虚拟 View Controller )时,它将显示一个新的 View Controller ,而不显示虚拟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;
}

在我的viewDidLoad方法中,我确实设置了委托(delegate)。 self.tabBarController.delegate = self;
但是,由于某种原因,未调用此方法。
有人可以帮忙吗?

最佳答案

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

关于ios - UITabBarControllerDelegate方法未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31611756/

10-12 19:17