iOS通知使用小结
最近在项目开发中遇到了一个问题,首页底部菜单和底部子菜单的互动。需求是这样的,编辑状态下点击红色删除按钮,首页底部菜单移除该项,子菜单中对应项选中状态设置为未选中,典型的一对多方式。刚开始的方案是想通过代理或者block实现,结果发现只能一次修改一个子页面,无法全部同步,后改用通知方式,得以完美实现。代码如下:

//1、在父页面发通知,告知子页面某一项被移除
-(void)btnDeleteAction:(CCHighSeasPoolButton *)sender{
CCHighSeasPoolManager *seas=[CCHighSeasPoolManager sharedManager];
CCMoreListModel *model=[seas.dataList objectAtIndex:sender.btnRow];
//删除首页菜单项,在所有子页面接收通知,将该项设置为未选中
[[NSNotificationCenter defaultCenter] postNotificationName:@"CCNewMoreMenuDelete" object:model];
//刷新首页底部菜单个数
self.itemAddBlock(model);
[seas.dataList removeObjectAtIndex:sender.btnRow];
//刷新当前列表
[self.collectionView reloadData];
}
//2、在子页面接收通知,操作成功,刷新页面
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(headerRefresh:) name:@"CCNewMoreMenuDelete" object:nil];
- (void)headerRefresh:(NSNotification *)notification{
CCMoreListModel *infoDict = notification.object;
//首页底部菜单移除某一项,在子菜单中将该项的选中状态设置为未选中
for (CCHighSeasPoolReturnItemModel *model in self.data[0].items) {
if ([model.itemtitle isEqualToString:infoDict.tab_name]) {
[model setIsselect:0];
}
}
//刷新子菜单
[self.collectionView reloadData];
}
iOS通知使用小结的更多相关文章
- iOS通知的整理笔记
iOS通知用于高耦合界面的传值确实方便快捷. 需要实现模态弹出的视图控制器上,有一个视图控制器可以导航.这必定要将这个视图控制器的导航视图控制器naVC.view添加到模态弹出的视图控制器presen ...
- iOS 通知的变化ios9-10,新功能展示
二.新功能展示 1 使用 /iOS通知新功能玩法 2. 全面 iOS10里的通知与推送详情 一.变化 四.Notification(通知) 自从Notification被引入之后,苹果就不断的 ...
- iOS通知中心
iOS通知中心 它是iOS程序内部的一种消息广播机制,通过它,可以实现无引用关系的对象之间的通信.通知中心他是基于观察者模式,它只能进行程序内部通信,不能跨应用程序进程通信. 当通知中心接受到消息后会 ...
- delphi IOS 通知 TNotification
delphi IOS 通知 TNotification http://blogs.embarcadero.com/ao/2013/05/01/39450 TNotification http://d ...
- iOS 通知观察者的被调函数不一定运行在主线程
Tony in iOS | 08/08/2013 iOS 通知观察者的被调函数不一定运行在主线程 今天修复Bug时候发现的一个小细节,记录下. 问题描述 事情是这样的:我在A视图(UITableVie ...
- iOS 通知扩展插件
iOS 通知扩展插件 目录 iOS 通知扩展插件 Notification Service Extension 新建一个target 代码实现 注意事项 UINotificationConentExt ...
- iOS推送小结(证书的生成、客户端的开发、服务端的开发)
1.推送过程简介 1.1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请 ...
- iOS通知中心升级 -可设置按优先级执行block
简单介绍下,这是需求驱动中发现iOS的NotificationCenter有很多功能无法实现,于是对其进行了一层包装.相当于手动管理观察者栈和监听者期望执行的事件,因此可以为其添加了很多新增的功能,将 ...
- iOS通知
链接: IOS之推送通知(本地推送和远程推送) iOS 10推送通知开发 活久见的重构 - iOS 10 UserNotifications 框架解析 iOS10全新推送功能的实现
- iOS通知的使用
注册:[[NSNotificationCenter defaultCenter] postNotificationName:@"changeColor" object:self]; ...
随机推荐
- web3 产品介绍:Decentraland:开启你的虚拟现实区块链游戏之旅
Decentraland(https://decentraland.org/)是一款基于区块链技术的虚拟现实游戏,它将去中心化的概念引入游戏世界,为玩家提供了一个创造.交互和探索的虚拟空间.在Dece ...
- 【Vue】接口模块化处理
在前端Vue项目中,接口会被统一放在一个目录中管理: 一个模块的所有接口放在一个JS文件中: 文件会导入封装好的请求方法,和动态绑定的接口地址 import request from '@/utils ...
- 多智能体路径规划问题 —— Learn all about Multi-Agent Path Finding (MAPF)
地址: http://mapf.info/index.php/Main/Publications 与其对应的实验室地址: https://www.movingai.com/
- 国产首款IDE环境:数字广东公司联合麒麟软件打造的国内首款适配国产操作系统、蜘蛛创新的集成开发环境CEC-IDE正式亮相
参考: https://www.youtube.com/watch?v=fOpBEWZVKU0 在中国it历史上继"木兰编程语言(实际上套壳Python),红旗操作系统(实际上套壳Chrom ...
- python语言绘图:绘制一组以beta分布为先验,以二项分布为似然的贝叶斯后验分布图
代码源自: https://github.com/PacktPublishing/Bayesian-Analysis-with-Python ============================= ...
- ubuntu22.04系统环境下使用vs code安装pylint检查python的代码错误
紧跟前文: ubuntu18.04系统环境下使用vs code安装pylint检查python的代码错误 pylint官网: https://pylint.pycqa.org/ =========== ...
- 说说中国高校理工科教育中的基础概念混乱问题——GPU是ASIC吗
在YouTube上看到这样一个视频: https://www.youtube.com/watch?v=7EXDp6c9n-Q&lc=Ugydwl8gppB5FWE8Y5V4AaABAg.9fc ...
- hibernate validation,spring validation自定义参数校验
1.背景 在实际开发中,我们除了会使用常用的参数判断,如字符串不为空,最大值,最小值等 我们还可以自定义参数校验规则 2.实际生产问题 实际生产中同步订单的时候, 假设我们要求订单状态值只能是 -1, ...
- Python 提取出SQL语句中Where的值的方法
1.方法一:使用sqlparse库的方法 为了提取SQL语句中WHERE子句的值,我们可以利用Python的sqlparse库,这是一个专门用于解析SQL语句的库.以下是一个示例代码,演示如何使用sq ...
- [考试记录] 2024.8.10 csp-s 模拟赛18
80 + 20 + 0 + 70 = 170 第三题应该有 10 分暴力的,但我没打. T1 星际旅行 题面翻译 总共有n个节点,m条路径,要求其中m-2条路径走两遍,剩下2条路径仅走一遍,问不同的路 ...