在平時(shí)編寫代碼的過程中,頁(yè)面之間的跳轉(zhuǎn)可以說就和MVC模式一樣是開發(fā)必須的。但是可能我們知道一種或者幾種頁(yè)面之間的跳轉(zhuǎn),今天我就來總結(jié)一下我在開發(fā)之中遇到的所有的頁(yè)面跳轉(zhuǎn)代碼。(關(guān)于控制器之間的簡(jiǎn)單的跳轉(zhuǎn),比如導(dǎo)航控制器跳轉(zhuǎn)、故事版跳轉(zhuǎn)、簡(jiǎn)單的模態(tài)跳轉(zhuǎn)不在這里多說)
一、代理跳轉(zhuǎn)。
通常我們?cè)谔D(zhuǎn)中經(jīng)常是通過你點(diǎn)擊了某個(gè)事件或者某個(gè)操作使你進(jìn)行控制器之間的跳轉(zhuǎn)。那么我們可以在這個(gè)按鈕事件或者操作里面寫一個(gè)代理進(jìn)行跳轉(zhuǎn)或者傳值。
二、block跳轉(zhuǎn)。
大家都知道block塊的強(qiáng)大之處,我個(gè)人認(rèn)為block是代理的升級(jí)版本。他實(shí)現(xiàn)了代理能實(shí)現(xiàn)的功能,而且代碼更加的簡(jiǎn)潔。只需要在視圖A中進(jìn)行一次聲明然后在控制器B 中進(jìn)行跳轉(zhuǎn)代碼的實(shí)現(xiàn)。
但是需要知道的是無論是代理還是block我們都是需要視圖和控制器之間存在著聯(lián)系的,不然沒有辦法去調(diào)用代理或者block。這是大家很容易忽略的地方,也是經(jīng)常容易錯(cuò)的地方。
三、通知跳轉(zhuǎn)。
我們也可以使用通知進(jìn)行頁(yè)面得跳轉(zhuǎn)。通知在我看來就是比代理好的一點(diǎn)就是不需要視圖和控制器之間有必然的關(guān)聯(lián)就可以調(diào)用(當(dāng)然他們最大的區(qū)別是一個(gè)可以多對(duì)多傳值)。
四、直接在視圖跳轉(zhuǎn)
這一個(gè)方法是非常的直接,就是在視圖中直接的跳轉(zhuǎn)界面。說白了就是調(diào)出application然后也是以導(dǎo)航控制器的形式進(jìn)行跳轉(zhuǎn)。非常的簡(jiǎn)單實(shí)用(當(dāng)然是在不需要進(jìn)行傳值等操作的時(shí)候。)
//視圖直接涂轉(zhuǎn)控制器
UINavigationController *nav = (UINavigationController *)[UIApplication sharedApplication].keyWindow.rootViewController;
SecViewController *sec = [[SecViewController alloc]init];
[nav pushViewController:sec animated:YES];
其他代碼和上面一樣