數據的逆傳目前有三種方法(數據提供/發佈者 數據接收者):
1)代理(代理方法中帶要傳遞的數據參數)
2)通知(通知的發佈者object是要傳遞的數據參數,通知發佈者要求通知中心發佈通知,通知接受者註冊通知監聽器(裏面有 通知的方法,注意,在該方法實現時,其必帶的參數是(NSNotification *)notification,通知接受者取消註冊通知監聽器)
3)block方法(block的參數設置爲要傳遞的數據參數)post
1 通知傳值(或者傳遞事件):分爲三個步驟:注意:通知能夠是多對1發通知,也能夠是一對多發通知,多對1發通知(同一個通知)時能夠經過通知的object參數的不一樣來傳遞不一樣的信息,即同一個名稱的通知能夠根據不一樣的通知發佈者來各自設置不一樣的object參數來向通知接受者發佈不一樣的信息spa
1.1)代理
1.server
ActivityPointProductModel *pointProductModel = _pointProductList[indexPath.row];對象
UIButton *btn = [[UIButton alloc] init];事件
//pointProductModel.ProductID是基本數據類型(int float NSInteger等)rem
btn.tag = pointProductModel.ProductID;get
[[NSNotificationCenter defaultCenter]it
postNotificationName:@"EnergyCollectionViewChangeVC" object:btn];io
2
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeToEnergyExchangeViewController:) name:@"EnergyCollectionViewChangeVC" object:nil];
3
- (void)changeToEnergyExchangeViewController:(NSNotification *)noti{
UIButton *btn = [noti object];
ReEnergyExchangeViewController *EnergyExchangeVC = [[ReEnergyExchangeViewController alloc] init];
EnergyExchangeVC.productID = btn.tag;
[self.navigationController pushViewController:EnergyExchangeVC animated:YES];
}
1.2)
1.3)
三種傳值方式實用舉例demo:http://pan.baidu.com/s/1dEQzeq1
未完待續