通知(NSNotificationCenter)

通知

如今天遇到了一个问题,长按相片,将此相片传到发布说说那个控制器中,不管用push,还是其它方法都无法实现,后来发现一个view添加到了Windows上面了,view添加完毕了就移除了和这个控制器一点关系都没有,这时一个大牛(朋友)用了"通知‘这个方法,解决了我的难题,记录下.

1.发送通知

/**   postNotificationName: 是发布的通知的名字,谁要注册通知时,必须和这个名字一致

 *   Object :是要传递的对象或参数,如果不传为nil (id类型).

**/ 

[[NSNotificationCenter defaultCenter] postNotificationName:@"MJNOtificationPicLongPress"  Object:mj.image];

2. 注册通知

/**    addObserver: 是监听哪个类

 *   selector: 添加方法  name:通知的名字,必须上发布通知的名字一致

**/ object: 传过来的对象

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(picLongPress:) name:@"MJNotificationPicLongPress" object:nil];

3. 实现通知的方法

/**

 *   NSNotification:通知的类型  [noti object] 是取出通知中传进来的参数或对象

**/

-(void)picLongPress:(NSNotification*)noti{

      CirclePublishViewController *cpCtrl = [[CirclePublishViewController alloc] init];
      cpCtrl.image = [noti object];
     [self.navigationController pushViewController:cpCtrl animated:YES];
}

4.移除通知

- (void)dealloc{

[[NSNotificationCenter defaultCenter] removeObserver:self];

}

时间: 2024-10-13 19:35:50

通知(NSNotificationCenter)的相关文章

iOS之 利用通知(NSNotificationCenter)获取键盘的高度,以及显示和隐藏键盘时修改界面的注意事项

我们在开发中会遇到这样的情况:调用键盘时需要界面有一个调整,避免键盘遮掩输入框. 但实现时你会发现,在不同的手机上键盘的高度是不同的.这里列举一下: //获取键盘的高度 /* iphone 6: 中文 2014-12-31 11:16:23.643 Demo[686:41289] 键盘高度是 258 2014-12-31 11:16:23.644 Demo[686:41289] 键盘宽度是 375 英文 2014-12-31 11:55:21.417 Demo[1102:58972] 键盘高度是

(转载)OC学习篇之---通知(NSNotificationCenter)

在前一篇文章中我们介绍了OC中很常用的两个技术:KVC和KVO,今天我们来看一下OC中另外的一个常用技术:通知(Nofitication) 其实这里的通知和之前说到的KVO功能很想,也是用于监听操作的,但是和KVO不同的是,KVO只用来监听属性值的变化,这个发送监听的操作是系统控制的,我们控制不了,我们只能控制监听操作,类似于Android中系统发送的广播,我们只能接受.但是通知就不一样了,他的监听发送也是又我们自己控制,我们可以在任何地方任何时机发送一个通知,类似于Android中开发者自己发

IOS Android:消息事件通知 NSNotificationCenter EventBus

文章来自:http://blog.csdn.net/intbird IOS IOS系统自带 NSNotificationCenter 0,上图 1,初始化程序入口 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { MainViewController* mainView = [[MainViewController alloc

通过NSNotificationCenter 发送通知

问题: 想在APP中发布一条通知,同时允许其他对象接收通知并根据你广播的内容采取相应的行动. 讨论: 通知中心是通知对象的派送中心, 例如,在用户使用 App 时如果键盘显示出来了,iOS 会发送一条通知到你的应用,程序中的任何对象都可以通过将自己添加到通知中心,作为一个观察者,来监听此通知.当对象的的生命周期即将结束时,需要将该对象从通知中心的派送表中移除. 这样,一条通知就相当于一个消息被通知中心广播给它的观察者.通知中心是 NSNotificationCenter 类的一个实例对象.我们通

通知传值(NSNotificationCenter)

通知传值 //流程: 1.注册通知 2.通知中心,发送一条消息通知----------其中name名字千万不要写错了,会出现在3个地方 3.实现通知中心内部的方法,并实现传值 4.第四步,消息发送完,要移除掉 代码如下: #import "FirstViewController.h" #import "SecondViewController.h" #import "UIButton+Create.h" @interface FirstViewC

iOS之NSNotificationCenter通知中心使用事项

其实这里的通知和之前说到的KVO功能很想,也是用于监听操作的,但是和KVO不同的是,KVO只用来监听属性值的变化,这个发送监听的操作是系统控制的,我们控制不了,我们只能控制监听操作,类似于Android中系统发送的广播,我们只能接受.但是通知就不一样了,他的监听发送也是又我们自己控制,我们可以在任何地方任何时机发送一个通知,类似于Android中开发者自己发送的广播.从这一点看来,通知的使用场景更为广泛了. 下面就来看一下例子: 还是护士和小孩的那个例子 Children.h [objc] vi

iOS通知中心 NSNotificationCenter详解

NSNotificationCenter的适用场景,原理机制,使用步骤等. 通知中心的使用顺序:先确保注册了观察者,因为发送通知是一瞬间的事,如果没有注册观察者,发送通知后再注册是不会收到的. 总结:通知只会发送给当前监听着的对象. 代码 //注册通知  在关心该通知的页面注册监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tongzhi:) name:@"tongzhi" obj

Swift - 使用NSNotificationCenter发送通知,接收通知

1,通知(NSNotification)介绍 这里所说的通知不是指发给用户看的通知消息,而是系统内部进行消息传递的通知.要介绍通知之前,我们需要先了解什么是观察者模式. 观察者模式 (Observer):指一个对象在状态变化的时候会通知另一个对象.参与者并不需要知道其他对象的具体是干什么的 .这是一种降低耦合度的设计.常见的使用方法是观察者注册监听,然后在状态改变的时候,所有观察者们都会收到通知. 在 MVC 里,观察者模式意味着需要允许 Model 对象和 View 对象进行交流,而不能有直接

通知中心的只用NSNotificationCenter传值 和打电话,发短信,邮件,打开网页的直接打开的功能

通知中心的使用 第一个页面三部; 产生一个通知中心的对象(系统的一个单例类) 在通知中心注册一个观察者 收到通知后调用的方法 dealloc移除观察者的身份 第二个页面 发送通知中心 创建一个字典 返回你要的数据 直接跳转的功能     //直接跳入的功能;     //打电话     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://110"]];     //发短信     [[UIApp