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]; ...
随机推荐
- Python和RPA网页自动化-处理alert弹框
以百度为例,分别使用python和RPA自动化完成以下步骤:设置->搜索设置->保存设置->确定 1.python代码如下 注意:[已经记录下您的使用偏好]弹框是无法捕获网页源代码的 ...
- 概述C#中各种类型集合的特点
在C#中,集合是用于存储和操作一组数据项的数据结构.这些集合通常位于 System.Collections 和 System.Collections.Generic 命名空间中.下面我将概述C#中几种 ...
- 【Uni-App】UniApp转微信小程序发布应用
参考地址: https://www.jianshu.com/p/a77b73f329e4 第一步,把原始Uni-App项目,转成微信小程序项目 点[发行]-- [小程序-微信(仅适用uni-app)] ...
- URDF(Universal Robot Description Format)—— 通用机器人描述格式URDF文件简介与生成
参考: https://zhuanlan.zhihu.com/p/477556743 详细介绍资料: https://wiki.ros.org/urdf/XML
- model.train方法的dataset_sink_mode参数设置为False时以step作为单位打印数据——(只在mode=context.GRAPH_MODE下成立,在mode=context.PYNATIVE_MODE模式下不成立)
如题: 官方中的内容支持: https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/summary_record.html ...
- @Valid和@Validated的service层的应用
1.背景 实际开发中,很多时候要对参数校验,比如为空等, 除了要在接口的入口处使用,很多普通方法也需要检查,比如service方法, 那么如何在service上使用这个参数校验呢? 2.使用方式 步骤 ...
- 实操教程 | 触发器实现 Apache DolphinScheduler 失败钉钉自动告警
作者 | sqlboy-yuzhenc 背景介绍 在实际应用中,我们经常需要将特定的任务通知给特定的人,虽然 Apache DolphinScheduler 在安全中心提供了告警组和告警实例,但是配置 ...
- TGI 多-LoRA: 部署一次,搞定 30 个模型的推理服务
你是否已厌倦管理多个 AI 模型所带来的复杂性和高成本? 那么, 如果你可以部署一次就搞定 30 个模型推理服务会如何? 在当今的 ML 世界中,哪些希望充分发挥其数据的价值的组织可能最终会进入一个& ...
- 2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始。初始时,nums 中所有下标均未标记。 从第1秒到第m秒,每秒可以选择以下四种操
2024-08-14:用go语言,给定两个长度分别为n和m的整数数组nums和changeIndices,下标从1开始.初始时,nums 中所有下标均未标记. 从第1秒到第m秒,每秒可以选择以下四种操 ...
- 【倍增】Rigged Games
题意 两队打比赛,大比分 2b − 1 赢,小比分 2a − 1 赢. 给定的长度为 n 的串,两队比赛的每个小分结果是这个串的循环重复. 问从该串的每个位置开始,最终谁会赢得整个比赛. 思路 倍增. ...