頁面傳值:
複合傳值
單例傳值
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