iOS学习之协议传值

今天主要给大家介绍一下协议传值, 它是iOS中一种很常用的协议方式.
还是先对window初始化, 把nav的根视图控制器设置为vc, 再把nav设置为window的根视图控制器. 代码如下.

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
ViewController *vc = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
self.window.rootViewController = nav;
nav.navigationBar.translucent = NO;
return YES;

然后新建一个SecondViewController, 也就是第二个界面, 协议传值是从后往前传的. 也就是要实现把SecondViewController的值传给ViewController.

iOS学习之协议传值_第1张图片
第二个vc.png

要传值还是得在第一个界面写点东西吧, 我就初始化了一个label和一个button, 效果如下.

iOS学习之协议传值_第2张图片
vc.png

准备工作差不多了, 开始协议传值六步.

1.在SecondViewController(即后一个界面)的.h文件里声明一个协议方法.
2.同样在后一个界面的.h文件中声明代理人属性.

这里我就传一个简单的字符串了, 所以也声明了个字符串content.
代码如下.


iOS学习之协议传值_第3张图片
协议传值1.2.png

在SecondViewController的.m里也需要写点东西, 我声明了一个textField和一个button. 这个前边有介绍, 也很基础, 就不再放代码了, 就放个运行图吧.

iOS学习之协议传值_第4张图片
svc.png
3.在第二页的button点击事件里命令代理人执行协议方法.
iOS学习之协议传值_第5张图片
协议传值3.png
4.在ViewController(前一页)签订协议.
iOS学习之协议传值_第6张图片
协议传值4.png
5.在ViewController(前一页)的button点击事件中也设置个代理人.
6.实现协议方法.
iOS学习之协议传值_第7张图片
协议传值5.6.png

这样就实现了从后一页(SecondViewController)到前一页(ViewController)的传值, 例子中传的是一个字符串的值, 至于从前往后传值可以使用属性传值的方法实现.

你可能感兴趣的:(iOS学习之协议传值)