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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/77094846

项目的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对应的控制器。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小文博客

良心压缩软件Bandizip——无广告超精简

9.7K50
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–资产会计(162)-15在建工程-F-54清算预付款

4.6.5 F-54清算预付款 既可以手动清算预付款,也可以由付款程序来清算。您可以随时进行手动清算。不需要任何特殊方法。 当您输入发票时,系统会发出有未清预付...

33880
来自专栏小文博客

良心压缩软件Bandizip——无广告超精简

Bandizip 是一款来自韩国的开发商 Bandisoft 开发的 Windows 平台压缩软件,是一款完全免费的压缩软件。

860100
来自专栏贾老师の博客

网络数据帧与 MTU

24540
来自专栏Samego开发资源

玩玩树莓派之OS装机初始化

21980
来自专栏施炯的IoT开发专栏

Mouse Gestures on Windows Mobile

         Windows Mobile设备屏幕比较小,设计合理的UI很重要。众所周知,在PC机上使用的软件,如遨游(Maxthon),是支持鼠标手势的。...

208100
来自专栏转载gongluck的CSDN博客

SAPI SDK的介绍

我们都使用过一些某某词霸的英语学习工具软件,它们大多都有朗读的功能,其实这就是利用的Windows的TTS(Text To Speech)语音引擎。它包含在Wi...

49070
来自专栏有趣的django

python爬虫入门(九)Scrapy框架之数据库保存

豆瓣电影TOP 250爬取-->>>数据保存到MongoDB 豆瓣电影TOP 250网址 ? 要求: 1.爬取豆瓣top 250电影名字、演员列表、评分和简介 ...

38560
来自专栏扎心了老铁

redis的发布订阅模式pubsub

前言 redis支持发布订阅模式,在这个实现中,发送者(发送信息的客户端)不是将信息直接发送给特定的接收者(接收信息的客户端),而是将信息发送给频道(chann...

35170
来自专栏醉梦轩

解决Android模拟器中修改IMSI后无法上网问题

41730

扫码关注云+社区

领取腾讯云代金券