在iOS开发中有些时候需要使用代理来获取控制权
如tableview中的cell中有按钮。触发cell的按钮方法。这样很麻烦。这个时候可以直接将控制器传到cell中。
使用方法1.
在cell中声明@property (weak,nonatomic) UIViewController *VC;
不管你要传过来的是什么类型的控制器都要这样声明,后面可以转换的,不用担心。 要使用weak 或者assign 避免循环调用。
2.控制器中在使用cell的时候将VC传递过来
buyview.VC=self;
3.在cell中先将VC转换成对应的VC,再使用。
具体转换如下
if ([self.VC isKindOfClass:[BuyViewController class]]) {
BuyViewController *buyvc=(BuyViewController *)self.VC;
[buyvc buyGoodsWithPrice:[self.priceLab.text intValue]];
}
就是这样,可以减少很多代理的使用很方便。