美文网首页iOS开发iOSiOS基础小知识
【iOS】传值方式——通知

【iOS】传值方式——通知

作者: 清都 | 来源:发表于2017-11-17 10:31 被阅读13次

    一般正向传值使用属性,而反向传值使用协议或Block即可,但是我们有时候也会遇到需要隔页面传值的情况,比如一连回退超过一个页面,此时就需要使用通知进行传值了。
    使用通知需要按照步骤进行,先在目标文件注册通知,再发送通知,不然目标文件无法接收通知信息。代码在程序运行时的顺序很重要,必须是先注册后发送。

    注册通知

    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doNotification:) name:@"aNotification" object:nil];
    
    • name和发送通知时的NotificationName是同一个,用于标识同一个通知的发送和接收
    • selector为当接收到通知时执行的方法
    • 如果通知只用于一处,可在执行方法内部设置移除通知

    发送通知

    
    NSDictionary * dic = @{@"price":@(1024.66),@"name":@"aName"};
    [[NSNotificationCenter defaultCenter] postNotificationName:@"aNotification" object:nil userInfo:dic];
    
    • 通知根据NotificationName参数识别,该参数和注册时用的name一致,自行设置
    • object为接收对象
    • userInfo为需要传递过去的参数,自行按需要设置

    注册通知处的执行方法

    
    -(void)doNotification:(NSNotification *)notifocation{
    
    //接收通知并执行对应方法
    
    }
    
    • 传递的值在notifocation.userInfo

    移除通知

    
    [[NSNotificationCenter defaultCenter]removeObserver:self name:@"aNotification" object:nil];
    

    相关文章

      网友评论

        本文标题:【iOS】传值方式——通知

        本文链接:https://www.haomeiwen.com/subject/zypdvxtx.html