温馨提示×

温馨提示×

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

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

通知传值(NSNotificationCenter)

发布时间:2020-08-25 23:03:10 来源:网络 阅读:378 作者:卓行天下 栏目:开发技术

通知传值


//流程:

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


向AI问一下细节

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

AI