Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如果我有两个实现协议的视图控制器,如何指定哪个视图控制器是第三个控制器的委托?_Ios_Objective C_Delegates - Fatal编程技术网

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

Ios 如果我有两个实现协议的视图控制器,如何指定哪个视图控制器是第三个控制器的委托?,ios,objective-c,delegates,Ios,Objective C,Delegates,我有一个协议,可以在编辑数据后交换数据。 该协议在两个不同的视图控制器中实现 该协议有一个名为taskEdited的函数,用于设置值 在从第一个视图控制器推送的第三个视图控制器中,我的头文件中有一个委托属性: @property (weak, nonatomic) id <taskEditProtocol> delegate; 结果是在第一个视图控制器中调用该方法,在本例中,这就是我想要的。但是如何指定哪个控制器是第三个视图控制器的代理?您需要在创建第三个控制器的实例时手动设置它。

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

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

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

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

结果是在第一个视图控制器中调用该方法,在本例中,这就是我想要的。但是如何指定哪个控制器是第三个视图控制器的代理?

您需要在创建第三个控制器的实例时手动设置它。假设您从希望成为委托的控制器实例化第三个控制器,它将如下所示-

thirdController.delegate = self;

必须设置委托属性。最有可能是在
prepareforsgue:sender:
方法中

您想要成为代理的视图控制器需要有对第三个视图控制器的引用(它可以在
prepareforsgue:sender:
中获得)。然后您只需设置该属性,就像在任何其他对象上设置任何其他属性一样

thirdController.delegate = self;