(七十二)自己定义通知NSNotification实现消息传递
2017-04-20 09:36
357 查看
众所周知,iOS中一般在类之间传递消息使用较多的是delegate和block,另一种是基于通知进行的消息传递,我们经常是使用系统的通知。来实现一些功能。比如利用键盘尺寸改变的通知,我们能够依据键盘的位置改变输入框的位置,从而避免输入框被键盘遮挡。
除了利用系统的通知,我们还能够通过自己创建通知的办法来完毕一些消息传递。以XMPP登录为例,假设用户之前没有注销,那么在启动client时应该自己主动登录,登录在XMPP的工具类完毕。而当前视图在登陆完毕之前应当用网络连接的指示器(Activity Indicator)旋转指示,而连接完毕后应当隐藏指示器,何时连接成功就须要工具类通知视图控制器,我们这次用通知来实现。
通知要实现很easy,仅仅须要监听和发送就可以,回顾一下当时监听键盘,须要指定通知的名称,标准格式是类名+功能+Notification,比較长,因此用一个常量字符串来获取类名。防止输入错误。
①创建常量字符串:
直接在发送通知的.m头部写:
NSString *const WCLoginStatusChangeNotification = @"WCLoginStatusNotification";然后在.h中声明。以便监听通知时调用:
extern NSString *const WCLoginStatusChangeNotification;②让视图控制器监听通知:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginStatusChange:) name:WCLoginStatusChangeNotification object:nil];然后实现监听方法,參数为NSNotification对象。当中有一个userInfo成员属性用于传递消息。是一个字典。
③发送一个通知:
[[NSNotificationCenter defaultCenter] postNotificationName:WCLoginStatusChangeNotification object:nil userInfo:<字典>];传递參数利用的是userInfo參数。仅仅须要赋一个字典,就可以传递到监听的事件函数中。
相关文章推荐
- (七十二)自定义通知NSNotification实现消息传递
- (七十二)自定义通知NSNotification实现消息传递
- Qt自己定义事件实现及子线程向主线程传送事件消息
- Snail—UI学习之自己定义通知NSNotification
- android 实现自己定义状态栏通知(Status Notification)
- ASP.NET中实现MSN通知消息功能
- 定义消息的发送与接收的方法实现
- 输出带有是/否的对话框,实现效果是:点击是,继续添加内容,点击否,返回自己定义的页面
- .net2.0 中自己定义配置的实现
- ASP.NET中实现MSN通知消息功能
- 定义消息的发送与接收的方法实现
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能
- ASP.NET中实现MSN通知消息功能