自定义cell和控制器controller之间常用传值方式:
1.代理
(1)自定义cell.h中遵循协议,例如:
![](https://img.haomeiwen.com/i1244409/a293e68a28c33666.png)
(2)声明代理属性:
![](https://img.haomeiwen.com/i1244409/29f8d3ad1c8773a4.png)
(3)在cell.m中实现删除按钮的代理方法:
![](https://img.haomeiwen.com/i1244409/7180ea919ff3ee2b.png)
(4)在控制器中遵守该协议并实现方法:
![](https://img.haomeiwen.com/i1244409/fe64085e512d8e34.png)
![](https://img.haomeiwen.com/i1244409/fb52e1494eca3ecb.png)
2.block传值
(1)声明block:
![](https://img.haomeiwen.com/i1244409/36a9f6107c480bcf.png)
(2)cell.m中实现block方法:
![](https://img.haomeiwen.com/i1244409/6576603c30cc7004.png)
(3)controller.m中实现:
![](https://img.haomeiwen.com/i1244409/f0e4af13175ca4c7.png)
3.通知
(1)在cell.h中发布通知
![](https://img.haomeiwen.com/i1244409/6479652f84b3207a.png)
(2)controller中实现监听通知
![](https://img.haomeiwen.com/i1244409/41ebf5150246b01a.png)
注意:移除通知中是移除当前控制器下所有的通知。也可也这样写:
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"NSNotification_Name" object:nil];
表示移除当前控制器下通知名为“NSNotification_Name”的通知。
网友评论