我有一个协议来编辑后交换数据。 该协议在两个不同的视图控制器中实现。
该协议有一个名为taskEdited的函数,用于设置值。
在从第一个推送的第三个视图控制器中,我的头文件中有一个委托属性:
@property (weak, nonatomic) id <taskEditProtocol> delegate;
在.m文件中,我将方法调用如下......
[self.delegate taskEdited:self.taskForEdit];
结果是在第一个视图控制器中调用该方法,在这种情况下,我想要的是。但是如何指定哪个控制器是第三个视图控制器的委托?
答案 0 :(得分:1)
您必须设置委托属性。最有可能采用prepareForSegue:sender:
方法。
您希望成为委托的视图控制器需要具有对第三个视图控制器的引用(它可以在prepareForSegue:sender:
中获取。然后您只需设置属性,就像设置任何其他属性一样任何其他对象。
答案 1 :(得分:0)
您需要在创建第三个控制器的实例时手动设置它。假设你想从控制器中实例化第三个控制器你想成为委托,它看起来像这样.-
thirdController.delegate = self;