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

来源:互联网 发布:百度云传智播客java 编辑:程序博客网 时间:2024/05/17 07:30

项目的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 ([vcisKindOfClass:[ShoppingCartViewControllerclass]]) {

        UserLoginObject *loginObject = [UserLoginObjectsharedUserLoginObject];

        BOOL loginFlag = [loginObjectloginOrOutLogin];

        if (loginFlag ==NO) {

            LoginController *loginC = [[LoginControlleralloc] init];

            loginC.present =1;

            [self.window.rootViewControllerpresentViewController:loginCanimated:YEScompletion:nil];

        }else{

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

            returnNO;

        }

        returnNO;

    }

    returnYES;

}


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




阅读全文
1 0
原创粉丝点击