Swift协议+代理
Swift语言开发中使用协议+代理的用法和oc中是一样的,只不过变得是语法。现在就进入swift的协议+代理。
先上个图,看看我们要实现的效果: 首先是第一个页面,然后点击到第二个页面,最后点击返回按钮把值返回到第一个页面
![](http://upload-images.jianshu.io/upload_images/906389-7b3f266f359794ae.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
第一个页面
![](http://upload-images.jianshu.io/upload_images/906389-f683fba7bc3dcc73.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
第二个页面
![](http://upload-images.jianshu.io/upload_images/906389-23e936decdcb3ccb.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
点击返回按钮返回第一个页面
1.首先在第二个页面声明一个协议,亲。请注意语法和oc不同哦!! 协议只需要大括号括起来。
![](http://upload-images.jianshu.io/upload_images/906389-da5a3b7e82393af3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
声明协议
2.声明一个代理属性,是用来响应协议的
![](http://upload-images.jianshu.io/upload_images/906389-b3663d6e480e0539.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
声明代理属性
3.在要返回第一个页面的事件里把协议传过去,协议方法里的参数就是你要传过去的值
![](http://upload-images.jianshu.io/upload_images/906389-024236b1236babe4.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
把值通过代理传回去
4.回到第一个页面,我们只要遵守声明的协议
![](http://upload-images.jianshu.io/upload_images/906389-b8839f384a8e9bb7.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
遵守协议
5. 设置代理
![](http://upload-images.jianshu.io/upload_images/906389-1509127c237ee4d1.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6.实现代理方法
![](http://upload-images.jianshu.io/upload_images/906389-f0a334d997899248.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
实现代理方法