iOS:切换视图时,反向传递数据方法二:代理
2015-09-14 22:44
633 查看
代理:
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类
SecondViewController控制器关联的SeconViewController类
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类
#import "ViewController.h" #import "SecondViewController.h" @interface ViewController ()<SecondViewControllerDelegate> @property (weak, nonatomic) IBOutlet UITextField *firstTextField; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; } //重写该方法,视图切换时,自动调用 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([segue.identifier isEqualToString:@"modal"]) { //获取目的控制器 SecondViewController *secondVC = segue.destinationViewController; //正向传数据 secondVC.information = self.firstTextField.text; //设置代理 secondVC.delegate = self; } } #pragma mark -<SecondViewControllerDelegate> //反向接受信息 -(void)FinishedInformation:(SecondViewController *)secondVC andinfo:(NSString *)infos { self.firstTextField.text = infos; } @end
SecondViewController控制器关联的SeconViewController类
#import "SecondViewController.h" @interface SecondViewController () @property (weak, nonatomic) IBOutlet UITextField *secondTextField; @end @implementation SecondViewController //返回时的触发事件 - (IBAction)returnClicked:(UIBarButtonItem *)sender { //反向传递数据 [self.delegate FinishedInformation:self andinfo:self.secondTextField.text]; //关闭模态窗口 [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; //[self dismissViewControllerAnimated:YES completion:nil]; } - (void)viewDidLoad { [super viewDidLoad]; // 显示文本框内容(接受传递过来的数据) self.secondTextField.text = self.information; } @end
相关文章推荐
- iOS-多线程iOS-
- iOS:切换视图时,反向传递数据方法一:通知
- iOS开发中的使用kvc快速将字典模型转换成model模型。
- ios开发使用Basic Auth 认证方式
- ios开发系列之通知
- iOS开发 8小时时差问题
- 【原】使用Bmob作为iOS后台开发心得——查询关联关系(BmobRelation)
- iOS数组内存放自定义model的简单排序方法
- 基于第三方QQ授权登录和新浪微博授权登录的iOS代码分析
- iOS7自带扫描二维码、条形码功能实现
- project.pbxproj,最熟悉的”陌生人”
- iOS-通信录
- 【读书笔记】iOS-内存管理
- 【读书笔记】iOS-内存管理
- iOS设计模式 - 生成器
- IOS 学习---通过block自定义button的点击事件
- iOS计算缓存大小、清除缓存
- iOS远程推送(.p12转.pem方法)
- ios开发系列之枚举类型的使用
- iOS 页面显示在键盘之上