标签:
代理:
1、发送信息的控制器设置一个代理,并自定义一个代理的方法,用来传递数据
2、接受信息的控制器遵循发送信息的控制器的协议
3、接受信息的控制器设置发送信息的控制器的代理为自己self
4、接受信息的控制器实现协议中的方法,即接受数据
首先将控制器通过modal(push)方式联接,同时设置segue的identifier标识,因为这个identifier是与目的控制器唯一的识别的方式,最后再进行代码操作。
1、所有文件:
2、让FirstViewController关联自己的类ViewController(.h/.m)
3、让SecondViewController关联自己的类SecondViewController(.h/.m)
4、设置segue的identifier标识
具体代码如下:
FirstViewController控制器关联的ViewController类
1 #import "ViewController.h" 2 #import "SecondViewController.h" 3 4 @interface ViewController ()<SecondViewControllerDelegate> 5 @property (weak, nonatomic) IBOutlet UITextField *firstTextField; 6 7 @end 8 9 @implementation ViewController 10 11 - (void)viewDidLoad { 12 [super viewDidLoad]; 13 } 14 15 //重写该方法,视图切换时,自动调用 16 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 17 { 18 if([segue.identifier isEqualToString:@"modal"]) 19 { 20 //获取目的控制器 21 SecondViewController *secondVC = segue.destinationViewController; 22 23 //正向传数据 24 secondVC.information = self.firstTextField.text; 25 26 //设置代理 27 secondVC.delegate = self; 28 29 } 30 } 31 32 #pragma mark -<SecondViewControllerDelegate> 33 //反向接受信息 34 -(void)FinishedInformation:(SecondViewController *)secondVC andinfo:(NSString *)infos 35 { 36 self.firstTextField.text = infos; 37 } 38 @end
SecondViewController控制器关联的SeconViewController类
1 #import "SecondViewController.h" 2 3 @interface SecondViewController () 4 @property (weak, nonatomic) IBOutlet UITextField *secondTextField; 5 6 @end 7 8 @implementation SecondViewController 9 //返回时的触发事件 10 - (IBAction)returnClicked:(UIBarButtonItem *)sender 11 { 12 //反向传递数据 13 [self.delegate FinishedInformation:self andinfo:self.secondTextField.text]; 14 15 //关闭模态窗口 16 [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; 17 //[self dismissViewControllerAnimated:YES completion:nil]; 18 } 19 20 - (void)viewDidLoad { 21 [super viewDidLoad]; 22 23 // 显示文本框内容(接受传递过来的数据) 24 self.secondTextField.text = self.information; 25 } 26 27 @end
标签:
原文地址:http://www.cnblogs.com/XYQ-208910/p/4808528.html