swift

swift中的协议代理传值

2016-07-17  本文已影响495人  coder小鹏

协议代理传值一般使用在下级界面往上级界面传值的情况,这里将上级界面设定为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)

}

上一篇下一篇

猜你喜欢

热点阅读