iOS开发 两个视图之间值传递的常用方法<二>

来源:互联网 发布:python处理excel数据 编辑:程序博客网 时间:2024/05/16 20:28

二、视图间传值方法之通知


在上一篇讲了常用方法中有一种叫做通知的方法传值

在故事板里面直接拖一个导航控制器,两个视图控制器。现在要把视图控制器2里面的textfield 输入的内容返回到视图控制器1的lable里面。

这里写图片描述

直接看代码吧!
视图控制器1:
.m文件:

@interface FirstController ()@property (weak, nonatomic) IBOutlet UILabel *name;@end@implementation FirstController//按钮动作的方法 - (IBAction)buttonAction:(UIButton *)sender {    [self performSegueWithIdentifier:@"push" sender:nil];}-(void)viewDidLoad{    //创建通知中心并监视 通知名为“text”的发送来的通知    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(text:) name:@"text" object:nil];}//参数text 为通知中心收到消息的那个发送者(即名字“text”的通知)-(void)text:(NSNotification *)text{    _name.text = text.userInfo[@"textName"];}@end

视图控制器2:
.m文件:

@interface SecondController ()@property (weak, nonatomic) IBOutlet UITextField *nameText;@end@implementation SecondController-(void)viewWillDisappear:(BOOL)animated{    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:_nameText.text,@"textName", nil];    //创建了一个通知 并向通知中心发送了一个名字为@“text”的通知    [[NSNotificationCenter defaultCenter] postNotificationName:@"text" object:nil userInfo:dic];}@end

由于通知中心是一个单列,[NSNotificationCenter defaultCenter] 创建的通知中心都是一个通知中心。当视图将导航控制器pop的时候,视图2将消失 的时候给通知中心发送消息,通知中心在视图控制器1中添加了监测名字为“text”的通知发送的消息,然后把该通知携带的参数dic 返回到视图控制器1中。

源代码在我的资源里面是免积分下载的,欢迎下载。下载地址:http://download.csdn.net/detail/moxi_wang/9040615

0 0