这个set委托方法如何工作?

时间:2015-11-25 10:50:40

标签: ios objective-c uiviewcontroller delegates

这些是我在子视图控制器中的委托方法。

@protocol assignNames<NSObject>

-(void)setFirstName:(NSString*)firstName;
-(void)setLastName:(NSString*)lastName;

@end`

在我的父视图控制器中,我在文本字段中收到第一个名字。 这是我的代码的一部分。

VIEWCONTROLLER.M

\\ FirstName is the name of my textField string


viewcontroller2 *viewc = [[viewcontroller2 alloc]init];
viewc2 = [segue destinationViewController];
viewc2.FNT = FirstName.text;   

[viewc2 setDelegate:self ]; \\ Here is my question

所以,当我给出这个方法时,它究竟意味着什么?如果我把它包含在我的代码中,似乎没有任何事情发生。

1 个答案:

答案 0 :(得分:1)

@protocol中的childviewController块是childviewController的代表应实施的方法列表。当您从[viewc2 setDelegate:self ]致电viewController.m时,您的viewController将成为childViewController的代表。

那么所有这些步骤的作用是什么?嗯,首先,因为父VC订阅了assignNames委托,所以它将实现这两​​种方法。其次,Child VC可以在父VC中调用协议的方法,如下所示:

[self.delegate setFirstName:@"Derp"];
// we are in the child VC and the delegate would be parent VC

无论如何,曾经有一段时间,这一切困扰着我,所以我知道它是怎么回事。我建议你通过一些教程来了解这些内容,比如this one here