界面?zhèn)髦祮?wèn)題(正向、反向傳值)

注意在界面跳轉(zhuǎn)時(shí):
在presentViewController函數(shù)執(zhí)行的過(guò)程中,會(huì)執(zhí)行目標(biāo)控制器的loadView和viewdidLoad函數(shù)。
如果在presentViewController函數(shù)以后傳遞數(shù)據(jù),則需要在viewWillAppear函數(shù)以后取值

正向傳值:

將ViewController傳到下一個(gè)界面:在下一個(gè)界面的.h文件中定義一個(gè)全局變量(數(shù)據(jù)類型和要傳值的類型一致),用來(lái)接收傳遞過(guò)來(lái)的值,在ViewController跳轉(zhuǎn)之前將變量賦值即可

反向傳值:

需要在dismisViewController之前使用協(xié)議方法,在從上一個(gè)界面跳轉(zhuǎn)到當(dāng)前界面時(shí),需要設(shè)置當(dāng)前界面的代理對(duì)象

2.1 使用代理協(xié)議反向傳值:

將界面的值傳遞給上一個(gè)界面時(shí):當(dāng)前界面需要有一個(gè)遵循某個(gè)協(xié)議的代理對(duì)象,通過(guò)代理對(duì)象調(diào)用協(xié)議方法來(lái)傳值給下一個(gè)界面,上一個(gè)界面需要遵循某個(gè)協(xié)議,通過(guò)協(xié)議中的某個(gè)方法來(lái)獲取下一個(gè)界面?zhèn)鬟^(guò)來(lái)的值。

反向傳值需要使用代理方法來(lái)給指定控制器傳值
此處的代理協(xié)議充當(dāng)了一個(gè)數(shù)據(jù)傳遞的標(biāo)準(zhǔn)
上一個(gè)控制器 <-- 當(dāng)前控制器
1 定義協(xié)議
2 遵守并實(shí)現(xiàn)協(xié)議  (由前一個(gè)控制器遵守并實(shí)現(xiàn))
3 聲明代理屬性   (在當(dāng)前的控制器)
4 建立代理關(guān)系    (在前一個(gè)控制器中完成)
5 執(zhí)行代理方法   (在當(dāng)前控制器)
2.2 使用block反向傳值:

從當(dāng)前界面?zhèn)髦到o上一個(gè)界面時(shí):需要在當(dāng)前界面的.h文件中聲明一個(gè)全局的block,調(diào)用block方法進(jìn)行傳值,然后在從上一個(gè)界面跳轉(zhuǎn)到當(dāng)前界面時(shí),實(shí)現(xiàn)block方法獲取到當(dāng)前界面的值;

順序:
上個(gè)界面初始化當(dāng)前界面(會(huì)找到當(dāng)前界面的.h文件中聲明的block
方法)->實(shí)現(xiàn)block方法—>present跳轉(zhuǎn)到當(dāng)前界面—>在當(dāng)前
界面中調(diào)用block進(jìn)行傳值—>dismis回上一個(gè)界面

全局傳值:(注意生命周期)

AppDelegate 是整個(gè)程序的一個(gè)單例對(duì)象
可以作為倉(cāng)庫(kù)使用,并且系統(tǒng)提供了方法來(lái)獲取對(duì)象

在AppDelegate的.h文件中聲明全局變量(一個(gè)變量傳遞一個(gè)值,多個(gè)需要多個(gè)聲明)
哪里需要存入或者取出全局變量,則在哪里聲明:
1. 獲取當(dāng)前應(yīng)用程序?qū)ο?br> UIApplication *app = [UIApplication sharedApplication];
2. 再獲取該對(duì)象的代理
AppDelegate *gelegate = app.delegate;
3.通過(guò)對(duì)象的代理取出或者存入對(duì)應(yīng)的全局變量

僅供木木學(xué)習(xí),以及有需要的伙伴們閱讀~可轉(zhuǎn)載,不可復(fù)制粘貼喲~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容