// A类代码
class A{
func huidiao(){
let tag:String = "XunDianGuanLiControlle"
// 数据处理的B类型
let UIPickerViewPL = B()
// 设置数据,传tag(tag是自定义的,可传可不传),getValueClosure 这个方法是必须的,这个方法创建在本类
UIPickerViewPL.UIPivkerInit(tag: tag, closuer:getValueClosure)
// 设置B类背景透明度
UIPickerViewPL.view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
// 显示B类,自下而上显示
self.present(UIPickerViewPL, animated: true, completion: nil)
}
// B类中回调的方法,参数自定义
func getValueClosure(tag: String,result:[Int:Int]) {
for (k,v) in result {
print("\(tag)|\(mPinPaiPickerData[k]![v]?.name)")
}
}
}
// B类代码
// 这句代码没理解什么意思,应该是声明类型,我是写在class上面的
typealias sendValueClosure = (_ tag: String,_ result:[Int:Int])->Void
class B{
// 请求tag
var mStringTag:String!
// 请求闭包函数
var mQingQiuBiBao:sendValueClosure?
// TODO:初始化赋值,在A类中调用此方法赋值
public func UIPivkerInit(tag:String,closuer:sendValueClosure?){
self.mStringTag = tag
self.mQingQiuBiBao = closuer
}
func BhuiDiao(){
if(mQingQiuBiBao != nil){
// 这里会回调A类里面的getValueClosure方法,这里的参数就是getValueClosure方法的参数
mQingQiuBiBao!(self.mStringTag,[1:1])
}
// 回跳(这个是present的返回,而且有动画,自上而下隐藏)
self.dismiss(animated: true, completion: nil)
}
}
swift 类回调方法/回调函数
最新推荐文章于 2023-09-19 19:52:00 发布