UI 07 界面传值 之 从后向前 ---- 协议传值
来源:互联网 发布:java三目运算符怎么用 编辑:程序博客网 时间:2024/05/17 12:05
哎呀… 好久没有写博客了, 今天可以好好的整理一下啦.
前一篇写的是从前向后的属性传值,比较简单.今天要写的协议传值, 就比较麻烦了.
但是之后会更新使用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.
好啦. 通过这六步我们就完成了从后向前传值.
协议传值不是很难,只要理解了就能够记得住.加油!
当然, 协议传值是非常重要的,大家一定要能够熟练使用.
0 0
- UI 07 界面传值 之 从后向前 ---- 协议传值
- UI 11 从后向前传值 -- block
- 关于block 由后向前传值札记
- UI界面传值
- UI界面传值
- 右值系列之六:向前,向前!
- 界面传值(协议)
- UI多界面传值之--属性传值
- 爬爬爬之路:UI(八)UINavigationController 界面传值
- iOS UI界面之间传值方式的整理总结(1)协议方法
- UI中协议传值
- ajax从后台向前台传数组
- SpringMVC向前台JSP页面传值
- UI-PassValue界面之间传值
- UI界面之间的传值
- Objective--C UI Block 实现从后往前传值 学习笔记
- 从后向前找出第二个逗号
- 替换空格(从后向前替换)
- dbms_stats.gather_table_stats详解
- hdu5317 RGCDQ
- VS与MySQL API进行数据库连接
- Linux 命令学习之apt命令详解
- 昨天是我的编程第一天,今天是第二天
- UI 07 界面传值 之 从后向前 ---- 协议传值
- android lint 去除无用的资源
- Robberies(逆向思维转换+01背包好题)
- The Java EE 6 Tutorial Creating and Initializing a Servlet
- SDUT 3300
- HDU 1049 Climbing Worm(水~)
- Java本地方法
- C#调用WebService服务(动态调用)
- 安卓studio 异常 appcompat-v7\23.0.0\res\values-v23\values-v23.xml