iOS开发中点击UITabBarItem弹出一个控制器(如常见未登录用户点击购物车弹出登录页面的效果)

项目的tabBar:


最近在做一个商城的项目,项目一需求:点击购物车弹出一个提示框提示用户该板块暂未开放(偷笑)。这个效果的实现方式和在用户未登录时点击购物车弹出一个登录页面(看天猫)的实现方式是一样的,我们需要拦截TabBarItem的点击事件

我在AppDelegate中将TabBarController设置了window的rootController,因此在AppDelegate中设置tabBarController的代理(遵守协议:UITabBarControllerDelegate),实现协议中的方法:

#pragma mark --- UITabBarControllerDelegate

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{

    UINavigationController * nav = (UINavigationController *)viewController;

    UIViewController * vc = nav.childViewControllers[0];

    if ([vc isKindOfClass:[ShoppingCartViewController class]]) {

        UserLoginObject *loginObject = [UserLoginObject sharedUserLoginObject];

        BOOL loginFlag = [loginObject loginOrOutLogin];

        if (loginFlag == NO) {

            LoginController *loginC = [[LoginController alloc] init];

            loginC.present = 1;

            [self.window.rootViewController presentViewController:loginC animated:YES completion:nil];

        }else{

            [SVProgressHUD showErrorWithStatus:@"该板块未开发"];

            return NO;

        }

        return NO;

    }

    return YES;

}


当点击tabBarItem的时候就会调用该方法,return YES:能点击item对应的控制器,return NO:不能点击item对应的控制器。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值