码迷,mamicode.com
首页 > 移动开发 > 详细

iOS:切换视图时,反向传递数据方法二:代理

时间:2015-09-15 00:08:01      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:

代理:

  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

 

iOS:切换视图时,反向传递数据方法二:代理

标签:

原文地址:http://www.cnblogs.com/XYQ-208910/p/4808528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!