这些是我在子视图控制器中的委托方法。
@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
所以,当我给出这个方法时,它究竟意味着什么?如果我把它包含在我的代码中,似乎没有任何事情发生。
答案 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。