1、 声明闭包类型
///闭包传值
//声明闭包
typealias RatingCloser = (String) -> Void
2、 在要传值的界面定义闭包变量
//定义闭包变量
var ratingCloser : RatingCloser?
3、 判断闭包变量是否为nil,如果不为nil的话,就执行闭包传值
if ratingCloser != nil {
self.ratingCloser!("dislike")
}
4、 在接收的控制器里设置传值控制器闭包的方法,接收值
let reviewVC = self.storyboard?.instantiateViewController(withIdentifier: "ReviewViewController") as! ReviewViewController
reviewVC.ratingCloser = { (value:String) -> Void in
self.RatingBtn.setBackgroundImage(UIImage(named: value), for: .normal)
}
5、注意
值得注意和小心的是,闭包类型声明与初始化的 位置,接受闭包传值时的时机
网友评论