通知传值(NSNotificationCenter)

发布时间:2020-08-25 23:03:10 作者:卓行天下
来源:网络 阅读:363

通知传值


//流程:

1.

注册通知 
2. 
通知中心 , 发送一条消息通知 ---------- 其中 name 名字千万不要写错了 , 会出现在3 个地方 3. 实现通知中心内部的方法 , 并实现传值 
4. 
第四步 , 消息发送完 , 要移除掉


代码如下:

#import "FirstViewController.h"#import "SecondViewController.h"#import "UIButton+Create.h"@interface FirstViewController ()
{  UILabel * _label;
}@end@implementation FirstViewController- (void)dealloc
{  [_label release];  //第四步,消息发送完,要移除掉  [[NSNotificationCenter defaultCenter]removeObserver:self name:@"labelTextNotification" object:nil];  [super dealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{  self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  if (self) {    // Custom initialization  }  return self;
}

- (void)viewDidLoad
{  [super viewDidLoad];      self.view.backgroundColor = [UIColor redColor];  self.navigationItem.title = @"首页";    _label = [[UILabel alloc]initWithFrame:CGRectMake(50, 80, 200, 30)];  _label.backgroundColor = [UIColor greenColor];  [self.view addSubview:_label];        UIButton * button = [UIButton systemButtonWithFrame:CGRectMake(100, 120, 50, 50) title:@"Push" target:self action:@selector(didClickButtonAction)];  [self.view addSubview:button];    //第二步,通知中心,发送一条消息通知----------其中name名字千万不要写错了,会出现在3个地方  [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(showLabelText:) name:@"labelTextNotification" object:nil];  
       // Do any additional setup after loading the view.
}

- (void)showLabelText:(NSNotification *)notification
{  //第三,实现通知中心内部的方法,并实现传值  id text = notification.object;  _label.text = text;
}

- (void)didClickButtonAction
{  
    SecondViewController * secondVC = [[SecondViewController alloc]init];  [self.navigationController pushViewController:secondVC animated:YES];  [secondVC release];
}

- (void)didClick:(NSString *)text
{  _label.text = text;
}

- (void)didReceiveMemoryWarning
{  [super didReceiveMemoryWarning];  // Dispose of any resources that can be recreated.
}@end
#import "SecondViewController.h"#import "FirstViewController.h"#import "UIButton+Create.h"@interface SecondViewController ()
{  UITextField * _textField;//创建一个输入框
}@end@implementation SecondViewController- (void)dealloc
{  [_textField release];  [super dealloc];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{  self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  if (self) {    // Custom initialization  }  return self;
}

- (void)viewDidLoad
{  [super viewDidLoad];  self.view.backgroundColor = [UIColor orangeColor];  self.navigationItem.title = @"第二页";  
      _textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 80, 200, 30)];  _textField.borderStyle = UITextBorderStyleRoundedRect;  [self.view addSubview:_textField];          UIButton * button = [UIButton systemButtonWithFrame:CGRectMake(100, 120, 50, 50) title:@"Back" target:self action:@selector(didClickButtonAction)];  [self.view addSubview:button]; 
          // Do any additional setup after loading the view.
}

- (void)didClickButtonAction
{    //第一步注册通知  [[NSNotificationCenter defaultCenter]postNotificationName:@"labelTextNotification" object:_textField.text];  [self.navigationController popToRootViewControllerAnimated:YES];
}



- (void)didReceiveMemoryWarning
{  [super didReceiveMemoryWarning];  // Dispose of any resources that can be recreated.
}@end


推荐阅读:
  1. 思科网络典型配置命令收集
  2. LAMP组合基础知识 WordPress、phpmyadmin安装

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

interface import 中心

上一篇:专家分析案例-某公司安全问题案例

下一篇:Android :实现一个手机卫士的一些要点

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》