您的位置:首页 > 产品设计 > UI/UE

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

2017-08-11 13:10 751 查看
项目的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对应的控制器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐