iOS通知用於高耦合界面的傳值確實方便快捷。
需要實現模態彈出的視圖控制器上,有一個視圖控制器可以導航。這必定要將這個視圖控制器的導航視圖控制器naVC.view添加到模態彈出的視圖控制器presentedVC.view上。
如何把naVC上的二級視圖控制器上的值傳給presentedVC?
解決方法:使用通知
1、在需要傳值的naVC二級視圖控制器界面創建一個通知
//創建通知 NSNotification *notification = [NSNotification notificationWithName:@"sendSelectTitle" object:nil userInfo:@{@"key":value}];
2、通過通知中心發送通知
//通過通知中心發送通知 [[NSNotificationCenter defaultCenter] postNotification:notification];
3、在需要接收值得presentedVC界面的viewDidLoad中通過通知中心注冊這條通知的觀察者和綁定執行方法
//注冊通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(make:)name:@"sendSelectTitle" object:nil];
4、已經注冊過的對象如果不需要接收信息時,在通知中?注銷(寫在presentedVC模態消失時)
[self dismissViewControllerAnimated:NO completion:^{ // 注銷通知 [[NSNotificationCenter defaultCenter]removeObserver:self name:@"sendSelectTitle" object:nil]; }];
********************系統通知不需要通過通知中心發送************************