iOS swift 四种传值方式
1 . 单例模式
第一步 创建单例
let shareInstance = SingleTest()
第二步 使用单例
shareInstance.getString()
第三步 验证是否唯一
let str = SingleTest.shareInstance
2 . 协议
(1)定义
protocol testDelegate {
func fangFaName(newString: String)
}
(2) 声明
var delegate: testDelegate?
(3) 触发协议
self.delegate.fangFaName(newString:"hahaha")
(4) 遵守协议
classViewController:UIViewController,testDelegate{
vc.delegate = self
}
(5) 实现协议
func fangFaName(newString: String) {
}
3 . 闭包
(1)定义
typealias block = (_str:String) ->Void
(2)声明
var callBack : block?
(3)实现
//@escaping 标记的意思
func testBlock(_block: @escaping block)
(4)触发
if callBack !=nil{// 第四步 触发闭包
callBack!("闭包传值")}
(5) 触发闭包回调
vc.testBlock { (str) in}
4 . 通知
(1) 创建通知
let center = NotificationCenter.default
(2) 添加观察者
center.addObserver(self, selector:#selector(testObeserver(test:)), name:NSNotification.Name(rawValue:"addValue"), object:nil)
(3) 通知触发的方法
func testObeserver(test:String){}
(4) 创建观察者(用于发送通知)
let center =NotificationCenter.default
(5) 发送通知
center.post(name: NSNotification.Name(rawValue: "passValue"), object: "传值", userInfo: dic)