项目的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;
}