swift中的协议代理传值

协议代理传值一般使用在下级界面往上级界面传值的情况,这里将上级界面设定为A界面,下级界面设定为B界面。传值的具体操作如下:

第一步:在B界面中声明协议,以下三步都是在B界面中进行,代码如下


//协议

protocol SYHDelegate : NSObjectProtocol {

func passValue(value:String)

}

第二步:声明代理,注意需要使用弱引用weak修饰,这样可以避免造成野指针


weak var delegate : SYHDelegate?//声明代理

第三步:开始传值,在返回A界面之前将要传递的值传过去,这里可以加上防崩溃判断,代码如下


if self.delegate != nil  {

self.delegate?.passValue("我是要传递的值")

}

第四步:在A界面遵守协议,并且指定代理,一定不要忘记指定代理,否则就不会走代理的回调方法


class ViewController: UIViewController,SYHDelegate {

override func viewDidLoad() {

super.viewDidLoad()

let secondVC = SecondViewController()

secondVC.delegate = self

}

第五步:在A界面执行代理的回调方法,接收传递过来的值即可


func passValue(value: String) {

print(value)

}

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

推荐阅读更多精彩内容

  • 1、通知传值 首先我们来看看通知传值,通知可实现任意界面之间的数据传递,但必须满足一个条件,就是保证在发送通知的时...
    Insit阅读 3,327评论 0 2
  • iOS开发中,页面传值是很常见的,但是页面传值你究竟知道多少呢?笔者这篇文章就是给大家介绍一下页面传值的具体方式,...
    蒲公英少年阅读 2,196评论 10 44
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,400评论 0 6
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,222评论 30 472
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 3,315评论 3 25