UI 07 界面传值 之 从后向前 ---- 协议传值
2015-08-29 09:11
405 查看
哎呀… 好久没有写博客了, 今天可以好好的整理一下啦.
前一篇写的是从前向后的属性传值,比较简单.今天要写的协议传值, 就比较麻烦了.
但是之后会更新使用block的方法完成从后向前传值, 会比较简单.
协议传值的六步还记得么?
第一步: 声明一份协议, 写明协议内容
第二步: 设置代理人属性.
第三步: 设置代理人需要完成协议内容里的方法
第四步: 引头文件, 代理人签订协议
第五步: 设置代理人
第六步: 代理人完成协议中的内容
第一步第二步:
在第二个页面的.h 中声明协议
第三步:
在第二个页面的.m中
当然我们是在点击第二页的button时,使用模态或者视图控制器才转到第一个页面.
所以第三步写在button的点击事件中.
第四步:
当我们使用系统中的协议时, 就只需要从第四步开始写.
在第一页的.m的延展部分签订
第五步:
第六步:
可以看到我们从后向前传了一个textFiled中的text.
好啦. 通过这六步我们就完成了从后向前传值.
协议传值不是很难,只要理解了就能够记得住.加油!
当然, 协议传值是非常重要的,大家一定要能够熟练使用.
前一篇写的是从前向后的属性传值,比较简单.今天要写的协议传值, 就比较麻烦了.
但是之后会更新使用block的方法完成从后向前传值, 会比较简单.
协议传值的六步还记得么?
第一步: 声明一份协议, 写明协议内容
第二步: 设置代理人属性.
第三步: 设置代理人需要完成协议内容里的方法
第四步: 引头文件, 代理人签订协议
第五步: 设置代理人
第六步: 代理人完成协议中的内容
第一步第二步:
在第二个页面的.h 中声明协议
#import <UIKit/UIKit.h> // 协议传值的第一步: 声明一份协议,写方法 @protocol SecondViewControllerDelegate <NSObject> // 协议方法: - (void)changeValue:(NSString *)value; @end @interface SecondViewController : UIViewController // 协议第二步:设置代理人属性 @property(nonatomic, assign)id<SecondViewControllerDelegate>delegate; @end
第三步:
在第二个页面的.m中
当然我们是在点击第二页的button时,使用模态或者视图控制器才转到第一个页面.
所以第三步写在button的点击事件中.
// 点击返回,是协议的触发条件 - (void)buttonAction:(UIButton *)button{ [self.navigationController popViewControllerAnimated:YES]; // 协议第三步: 设置代理人需要完成的协议方法. [self.delegate changeValue:self.textField.text]; }
第四步:
当我们使用系统中的协议时, 就只需要从第四步开始写.
在第一页的.m的延展部分签订
#import "MainViewController.h" #import "SecondViewController.h" //协议传值第四步: 签订协议. @interface MainViewController ()<SecondViewControllerDelegate> @end
第五步:
- (void)buttonAction:(UIButton *)button{ //push到下一页 SecondViewController *secondVC = [[SecondViewController alloc] init]; // 协议传值第五步: 设置代理人 secondVC.delegate = self; [self.navigationController pushViewController:secondVC animated:YES]; }
第六步:
// 协议传值第六步: 实现协议方法. - (void)changeValue:(NSString *)value{ self.label.text = value; NSLog(@"%@",value); }
可以看到我们从后向前传了一个textFiled中的text.
好啦. 通过这六步我们就完成了从后向前传值.
协议传值不是很难,只要理解了就能够记得住.加油!
当然, 协议传值是非常重要的,大家一定要能够熟练使用.
相关文章推荐
- HDU 5147 Sequence II (线段树求前缀和、后缀和)
- UIView的alpha、hidden和opaque属性之间的关系和区别
- C#基础----string和stringBuilder
- Win10 10525升级Win10 Build 10532失败回滚怎么办?
- POJ 3080 Blue Jeans(水~)
- 单行文本框和多行文本框UiTextfield UiTextView
- POJ 2871 A Simple Question of Chemistry(水~)
- POJ 2785 4 Values whose Sum is 0(hash表)
- 从数据库中提取到ueditor并且重新编辑
- POJ 2664 && HDU 1144 Prerequisites?(水~)
- 【LeetCode-面试算法经典-Java实现】【225-Implement Stack using Queues(用队列实现栈操作)】
- 6、iOS 开发之 UIPickerView
- 4、iOS 开发之 UITableView
- 3、iOS 开发之 UIScrollView UIPageController NSTimer
- iOS部分-UI基础控件 - 01天 入门 第11课 上下左右移动
- 新建Android工程报错:'Building workspace' has encountered a problem...解决办法
- ngui自适应的一点学习
- ios开发-UI-自定义Tabbar 图书布局
- iOS之Operation Queues 和 Grand Central Dispatch
- PHP生成UUID