天天看點

iOS - PassData前言1、複合傳值2、單例傳值3、NSUserDefaults 傳值4、代理傳值5、Block/閉包 傳值

頁面傳值:

複合傳值

單例傳值

userDefaults 傳值

代理傳值

Block/閉包傳值

複合 - 正向傳值

1、接收方,頭檔案中建立可存放傳遞值的屬性變量

2、發送方,包含接收方的頭檔案

3、發送方,執行個體化接收方對象,并設定其屬性變量的值

4、接收方,将此屬性變量的值輸出

Objective-C

Page2.h

Page1.m

Page2.m

Swift

Page2.swift

Page1.swift

單例 - 正/反向傳值

1、建立單例類,并在其頭檔案中建立可存放傳遞值的屬性變量

2、發送方,包含單例類頭檔案

3、發送方,建立單例類對象,并為其屬性變量指派

4、接收方,包含單例類頭檔案

5、接收方,建立單例類對象,取其屬性變量的值,輸出

建立單例類

SingleClass.h

SingleClass.m

Page3.m

Page4.m

SingleClass.swift

Page3.swift

Page4.swift

NSUserDefaults - 正/反向傳值

1、發送方,建立 userDefaults,并以一個固定的 key 值存儲資料,發送傳遞值

2、發送方,建立 userDefaults 同步資料

3、接收方,建立 userDefaults,并以相同的 key 值讀取資料,接收傳遞值

Page5.m

Page6.m

Page5.swift

Page6.swift

代理 - 反向傳值

1、建立代理協定,并在協定中建立協定方法

2、委托方:發送方,包含協定頭檔案

3、委托方:發送方,建立代理人屬性變量

4、委托方:發送方,調用協定方法,發送傳遞值

5、代理方:接收方,遵守代理協定

6、代理方:接收方,執行個體化發送方對象,并設定其代理人為 self

7、代理方:接收方,實作代理協定中的方法,接收傳遞值

建立協定

PageDelegate1.h

Page8.h

Page8.m

Page7.m

PageDelegate1.swift

Page8.swift

Page7.swift

代理 - 反向傳值,代理封裝

4、委托方:發送方,聲明重構的 init 初始化方法

5、委托方:發送方,重構 init 初始化方法

6、委托方:發送方,調用協定方法,發送傳遞值

7、代理方:接收方,遵守代理協定

8、代理方:接收方,用重構初始化方法執行個體化委托方對象,并設定其代理人為 self

9、代理方:接收方,實作代理協定中的方法,接收傳遞值

PageDelegate2.h

Page10.h

Page10.m

Page9.m

PageDelegate2.swift

Page10.swift

Page9.swift

代理 - 雙向傳值

PageDelegate3.h

Page16.h

Page16.m

Page15.m

block/閉包 - 反向傳值

1、發送方:建立 block/閉包 類型的變量

2、發送方:調用 block/閉包,發送傳遞值

3、接收方:執行個體化發送方對象,并實作其 block/閉包,接收傳遞值

Page12.h

Page12.m

Page11.m

Page12.swift

Page11.swift

block/閉包 - 反向傳值,block/閉包 封裝

2、發送方:聲明重構 init 初始化方法

3、發送方:重構 init 初始化方法

4、發送方:調用 block/閉包,發送傳遞值

5、接收方:用重構初始化方法執行個體化發送方對象,并實作其 block/閉包,接收傳遞值

Page14.h

Page14.m

Page13.m

Page14.swift

Page13.swift

block/閉包 - 雙向傳值

Page18.h

Page18.m

Page17.m