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.

第二个vc.png

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

vc.png

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

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

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


协议传值1.2.png

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容