如果我有两个实现协议的视图控制器,我如何指定我的第三个控制器的委托?

时间:2014-05-31 13:09:23

标签: ios objective-c delegates

我有一个协议来编辑后交换数据。 该协议在两个不同的视图控制器中实现。

该协议有一个名为taskEdited的函数,用于设置值。

在从第一个推送的第三个视图控制器中,我的头文件中有一个委托属性:

@property (weak, nonatomic) id <taskEditProtocol> delegate;

在.m文件中,我将方法调用如下......

[self.delegate taskEdited:self.taskForEdit];

结果是在第一个视图控制器中调用该方法,在这种情况下,我想要的是。但是如何指定哪个控制器是第三个视图控制器的委托?

2 个答案:

答案 0 :(得分:1)

您必须设置委托属性。最有可能采用prepareForSegue:sender:方法。

您希望成为委托的视图控制器需要具有对第三个视图控制器的引用(它可以在prepareForSegue:sender:中获取。然后您只需设置属性,就像设置任何其他属性一样任何其他对象。

答案 1 :(得分:0)

您需要在创建第三个控制器的实例时手动设置它。假设你想从控制器中实例化第三个控制器你想成为委托,它看起来像这样.-

thirdController.delegate = self;