消息中心

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationItem.title = @"第一页";
    self.view.backgroundColor = [UIColor cyanColor];
    [self createBtn];

    second = [[SecondViewController alloc]init];

    //添加消息的接收者--- 为消息中心添加观察者
    //消息对整个工程都是可见 在整个工程的任意函数中都能接收消息
    //消息中心只有一个 发送的消息只能通过消息的名字辨别

    //1、添加的是观察者对象指针
    //2、接收到消息以后做出的操作(触发的方法)
    //3、消息的名称
    //4、设置为nil
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeBackGroundColor:) name:@"changeColor" object:nil];
}
//接收到消息触发的方法 必须带有参数 参数的类型是NSNotification 通过这个参数获取消息的内容
-(void)changeBackGroundColor:(NSNotification *)notification
{
    //<1>获取消息的内容  [notification object] 内容是 [UIColor yellowColor]
    UIColor * color = [notification object];
    //object就是发送消息的时候的消息内容(object)
    //<2>
    self.view.backgroundColor =color;

}
-(void)pressBtn:(id)sender
{
    //通知
    //通知又叫做消息中心
    //发送的消息 在整个工程都是可见的

    //<1>需要创建消息中心对象[NSNotificationCenter defaultCenter];
    //<2>消息中心是一个单例方法创建 证明整个工程中该消息有且只有一个
    //<3>一个工程中可以发送多个消息 也可以一个消息有多个接收者
    //<4>发送消息的时候 整个工程中的消息的名称一定要唯一

    //postNotificationName:   name必须唯一 并且接收者接收消息的名称一定要和发送消息的名称对应 否则找不到
    //object:消息的内容 消息的内容可以是任意类型的对象指针(包括nil)

    [[NSNotificationCenter defaultCenter] postNotificationName:@"changeColor" object:[UIColor yellowColor]];
  [self.navigationController popToRootViewControllerAnimated:YES];
}
时间: 2024-08-25 17:08:38

消息中心的相关文章

一个简单消息中心,实现回调的扁平化

function Msg(name, data) {         this.name = name;// 消息标识名称,不同的消息应该不同的名称         this.data = data;// 消息携带的数据,格式不限制     }     function Listener(keys, callback) {         if (typeof keys === "string") {             this.keys = keys.split('-');  

消息中心构架设计说明书

紫薇真人李万鸿 目录 1       1. 文档介绍.... 4 1.1       文档目的... 4 1.2       文档范围... 4 1.3       读者对象... 4 1.4       参考文献... 4 1.5       术语与缩写解释... 4 2       系统概述.... 5 3       设计约束.... 6 4       设计策略.... 7 5       系统总体结构.... 8 6       子系统N的结构与功能.... 9 7       开发环

iOS设计模式之NSNotificationCenter 消息中心

消息中心模式和KVO模式有点相似,区别在于,KVO  模式是意图在于监听摸一个对应的值的变化,而去出发一个方法相应的动作,而消息中心在于,广播,它就像一个广播基站,发送一条消息,在所有的添加监听的地方都能够收到此信息,并作出不同活着相同的动作,范围更广大,功能更强大 //添加消息中心监听(添加观察者,也能说成添加监听) [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(myNotification:)

用代码打开通知中心(statusbar、通知栏、消息中心)

我想用代码来打开android的消息中心,也叫做statusbar.通知栏.通知栏其实就是一个常驻的服务,至于原理这里就不多说了,简单说下思路和问题. 思路:API中没有实现的方法,那么就利用反射机制 问题:4.2系统中的方法变更 解决办法:分系统实现不同的方法 源码路径:……\sdk\sources\android-18\android\app\StatusBarManager 我们先来看android 4.4(API 19)中的方法,android 4.3(API 18),android 4

摇杆移动应用消息中心的简易实现

摇杆的实现原理 摇杆的组成是两个圆形 底图为大圆 大圆的半径是小圆的按压范围 以圆心为中心 模长为1 可看做坐标系 分为4个象限 根据按压点返回的Vector2值判断目标点在哪个象限 摇杆多用于手游 无法像键盘或鼠标输入具体位置 那么返回的Vector2值就用按压的力度*具体的模长来计算 目前完成了用户的输入 也就是得到了具体的偏移量 可以驱动所写的数据逻辑执行 经过逻辑的分发之后找到最后的执行逻辑 完成到目标点的移动 具体的执行逻辑可以应用消息中心 定义移动的枚举类型 首先添加事件 再写触发事

nodejs中使用RabbitMq消息中心系统的方式

方式一:通过npm安装amqp库 方式二:通过rabbit.js库http://www.squaremobius.net/rabbit.js/ AMQP:高级消息队列协议,是应用层协议的一个开放标准,RabbitMq是用Erlang语言编写的一个AMQP的开源实现. 核心组件:Exchange & Queue Exchange称为交换器,Queue是消息队列,这两者都在服务器端,Producer和Consumer分别是生产者和消费者,在客户端 原理: 生产者发送消息给交换器Exchange并带一

Node.js + Nginx搭建基于websocket的、可扩展的消息中心

前言:最近需要搭个可扩展的聊天室环境,倒腾了半天,整理出了这么个方案.这个方案满足下列需求: ⑴ 基于websocket通讯. ⑵ node.js server作为deamon进程在后台一直运行. ⑶ socket server可通过增加服务器的形式横向扩展. 小编本人搞技术的,做事力求直击要害,言简意赅,所以把主要的步骤说明了下.需要详细了解的请看文章底部的"参考". 1. 安装nodejs ⑴ 准备工作 yum -y install gcc make gcc-c++ openssl

Windows消息队列

一 Windows中有一个系统消息队列,对于每一个正在执行的Windows应用程序,系统为其建立一个"消息队列",即应用程序队列,用来存放该程序可能 创建的各种窗口的消息.应用程序中含有一段称作"消息循环"的代码,用来从消息队列中检索这些消息并把它们分发到相应的窗口函数中.  二 Windows为当前执行的每个Windows程序维护一个「消息队列」.在发生输入事件之后,Windows将事件转换为一个「消息」并将消息放入程序的消息队列中.程序通过执行一块称之为「消息循

消息框架的一种实现

自从在Android中用上了消息框架,屡试不爽.不管是主线程发任务到后台线程,还是后台线程返回结果到主线程,甚至是完全在主线程中的调用,都用发消息-监听消息-收消息这种方式处理,真是解耦利器. 之前写过的两篇文章:用消息机制获取网络数据 和 用消息机制解耦Activity跳转. 之前在工程中都用的是开源的EventBus,很好用,但是因为是定制好的,缺少很多灵活性,监听方法不可改名,不可从父类override,不可以通过泛型参数声明,等等. 自己尝试用Handler实现了一个消息框架,还没完全搞