Delegate between two viewcontrollers in iOS
The second interface transmits values to the first InterfaceSecond Interface
// Configure the protocol on the Second Interface
@ Protocol ChuanZhiDelegate
-(Void) chuanzhid;
@ End
@ Interface ViewController2: UIViewController
@ Property (nonatomic, assign) id Chuanzhidelegate;
@ End
-(Void) viewDidLoad {
[Super viewDidLoad];
Self. view. backgroundColor = [UIColor cyanColor];
Self. btn = [[UIButton alloc] initWithFrame: CGRectMake (70,100,100, 30)];
Self. btn. backgroundColor = [UIColor redColor];
[Self. view addSubview: self. btn];
[Self. btn addTarget: self action: @ selector (chuan) forControlEvents: UIControlEventTouchUpInside];
}
-(Void) chuan {
If ([self. chuanzhidelegate respondsToSelector: @ selector (chuanzhid)]) {
[Self. chuanzhidelegate chuanzhid];
} Else {
NSLog (@ "the agent has not implemented changeStatus: Method ");
}
}
Then the first Interface
-(Void) viewDidLoad {
[Super viewDidLoad];
Self. btn = [[UIButton alloc] initWithFrame: CGRectMake (70,100,100, 30)];
Self. btn. backgroundColor = [UIColor redColor];
[Self. view addSubview: self. btn];
[Self. btn addTarget: self action: @ selector (chuanzhi) forControlEvents: UIControlEventTouchUpInside];
Self. view. backgroundColor = [UIColor lightGrayColor];
}
-(Void) chuanzhi {
ViewController2 * vc = [[ViewController2 alloc] init];
Vc. chuanzhidelegate = self; // set as the proxy of the Second Interface
[Self. navigationController pushViewController: vc animated: YES];
}
// Implementation Protocol
-(Void) chuanzhid {
NSLog (@ "proxy Implementation ");
}