#import "ViewController.h"
#import "SViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *showLabel;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//1.注册为观察者,监听B视图中的通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(AMethod:) name:@"MyNotificationName" object:nil];
}
-(void)AMethod:(NSNotification *)notification
{
//2.获取通知携带的数据,更新label的文本信息
NSDictionary *dictData = [notification userInfo];
NSString *str = [dictData objectForKey:@"MyUserInfoKey"];
self.showLabel.text = str;
}
- (IBAction)goSVC:(id)sender {
SViewController *svc = [[SViewController alloc] init];
[self presentViewController:svc animated:YES completion:^{
} ];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
//3.移除所有通知
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
@end
-----------
#import "SViewController.h"
@interface SViewController ()
@property (strong, nonatomic) UITextField *textField;
@end
@implementation SViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor redColor];
self.textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 200, 100, 30)];
self.textField.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.textField];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(50, 60, 30, 20);
[btn setTitle:@"go" forState:UIControlStateNormal];
[self.view addSubview:btn];
[btn addTarget:self action:@selector(clickGoVC:) forControlEvents:UIControlEventTouchUpInside];
}
- (void)clickGoVC:(id)sender {
//返回视图A并发布通知
[self dismissViewControllerAnimated:YES completion:^{
//1.创建userInfo携带的信息
NSString *str = self.textField.text;
NSDictionary *dictData = [NSDictionary dictionaryWithObject:str forKey:@"MyUserInfoKey"];
//2.发布信息
[[NSNotificationCenter defaultCenter] postNotificationName:@"MyNotificationName" object:nil userInfo:dictData];
}];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end