利用Segue進(jìn)行轉(zhuǎn)場傳值
正向跳轉(zhuǎn)
segue正向轉(zhuǎn)場是prepareForSegue
在源VC中->NavigationViewController在Segue的屬性中選擇show(Xcode7.2沒有show detail),會有返場btn,將VC push進(jìn)下一個場景。源VC中用prepareForSegue進(jìn)行設(shè)置,在方法中確定目的VC,然后對目的VC中的屬性進(jìn)行賦值或傳遞方法。
反向轉(zhuǎn)場
模態(tài)展現(xiàn)(modal)的視圖系統(tǒng)不提供返回按鈕。我們需要定義一個反向轉(zhuǎn)場,可以用模態(tài)視圖退場。
在目的視圖定義這個函數(shù)
@IBAction func close(segue:UIStoryboardSegue){
里面放傳遞的數(shù)據(jù)
}
在跳轉(zhuǎn)VC中按control拖btn到exit,選擇close。
反向轉(zhuǎn)場用performSegueWithIdentifier.
btn拖到exit->出口執(zhí)行目的地VC中的自定義函數(shù)
@IBAction func close(segue:UIStoryboardSegue)
{
let sourceVC = segue.sourceViewController as 源VC
(獲取sourceVC中的對象或者數(shù)據(jù)后在destVC中進(jìn)行處理)
}
利用代理進(jìn)行跳轉(zhuǎn)傳值
A->B 例如A跳轉(zhuǎn)B
先確定代理協(xié)議protocol,確定需要傳遞的方法和值。
(代理的理解就是大哥太忙,有些東西小弟幫忙去實(shí)現(xiàn),協(xié)議就是需要完成內(nèi)容的書面介紹)
在小弟B中,首先要在類中繼承協(xié)議protocol,再在類中實(shí)現(xiàn)->協(xié)議內(nèi)容<-的實(shí)現(xiàn)。同時設(shè)定大哥A的代理為自身self。
在大哥A中,一般定義一個屬性繼承這個協(xié)議方便調(diào)用,在需要小弟干活的時候調(diào)用協(xié)議中定義的內(nèi)容尋找小弟,B即開始執(zhí)行自身定義的方法。