iOS 点击TabController 某个item 不选中对应的viewController,执行自定义操作

需求

点击 底部 tabbar 的 国是书院item的时候,调起第三方sdk

如图
点击底部item

请添加图片描述

调起三方sdk
请添加图片描述

实现

一 、添加 占位vc

- (void)showGssyVC
{
    
    
    TPGssyViewController *gssy = [[TPGssyViewController alloc] init];
    [self setUpOneViewController:gssy
                       WithImage:[Image(@"TabBar/tabbar_gssy_default") imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
                    WithSelImage:[Image(@"TabBar/tabbar_gssy_selected")imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]
                       WithTitle:@"国是书院"];
    self.gssyVC = gssy;
}

- (void)setUpOneViewController :(UIViewController *)Vc WithImage:(UIImage *)image WithSelImage:(UIImage *)selImage WithTitle:(NSString *)title{
    
    
    
    MLNavigationController *navC = [[MLNavigationController alloc]initWithRootViewController:Vc];
    navC.interactivePopGestureRecognizer.enabled = NO;
    Vc.tabBarItem.image = image;
    Vc.tabBarItem.selectedImage = selImage;
    Vc.tabBarItem.title = title;
    Vc.tabBarItem.imageInsets = UIEdgeInsetsMake(-3, 0, 3, 0);
    self.tabBar.tintColor = [UIColor colorWithHexString:@"0xB93034"];
}


二 、禁止占位vc可选中状体

实现 UITabBarControllerDelegate 的 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController API_AVAILABLE(ios(3.0))
方法

///当点击占位vc 的item时候,不选中相应的vc

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController API_AVAILABLE(ios(3.0))
{
    
    
    MLNavigationController *navi = (MLNavigationController *)viewController;
    if ([navi isKindOfClass:[MLNavigationController class]]) {
    
    
        if ([navi.viewControllers[0] isKindOfClass:[TPGssyViewController class]]) {
    
    
            return NO;;
        }
    }
  
    return YES;
}

三 、重写tabViewcontroller 的 - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item 方法

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    
    
    NSString *title = item.title;
    if ( if ([title isEqualToString:@"国是书院"]) {
    
    
        if (!self.zxtManager) {
    
    
            self.zxtManager = [zxtSDKManager getInstance];
        }
        ///调起三方sdk
        [self.zxtManager loadSDK];
    }
}


猜你喜欢

转载自blog.csdn.net/LIUXIAOXIAOBO/article/details/121750267