2021-07-13

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)

你可能感兴趣的:(2021-07-13)