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