我們常常有這種需求,有A,B,C三個視圖器模蜡,依次是從A中跳轉(zhuǎn)到B漠趁,從B中跳轉(zhuǎn)到C,那么問題來了忍疾,如何從C直接跳轉(zhuǎn)到A呢
untitled.png
首先在A的視圖控制器中添加一個方法:
- (IBAction)unwindMethod :(UIStoryboardSegue *)sender{
}
打開故事板闯传,選擇C控制器,連接C的button和exit
7740eca9-8b4e-4545-852c-db3a005a67ec.gif
現(xiàn)在運行程序卤妒,從A跳轉(zhuǎn)到B甥绿,從B跳轉(zhuǎn)到C字币,點擊C Button看看是不是直接就跳到了A呢
b9ba2258-028d-41d4-8a3b-347e82698f88.gif
我們還可以這樣,在B中添加一短跟A中一樣的方法簽名的如我隨便起個名字叫jumpToB
- (IBAction)jumpToB:(UIStoryboardSegue *)sender{
}
刪除剛才C中的連線重新連接到Exit共缕,可以發(fā)現(xiàn)多出一個Action Segue
72fe1981-401f-4fe6-9eac-553b006f7b5f.gif
重新運行洗出,可以發(fā)現(xiàn)從C跳轉(zhuǎn)到了B,依次類推你可以在storyboard是實現(xiàn)任意展線骄呼。
讓我們試試一個更強(qiáng)大的功能共苛,如果不同的storyboard會怎么樣呢判没,還能這么跳轉(zhuǎn)嗎蜓萄,答案是肯定的,實驗一下澄峰,新建一個test2.storyboard嫉沽,添加一個button D,我們先連一下線試試:
f2330e64-d762-42dc-9cc2-e1c91d3731f4.gif
居然還是都檢測出來了俏竞,我們選擇一個試試看看能跳轉(zhuǎn)過去不
完成C控制器中的代碼跳轉(zhuǎn)
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"test2" bundle:[NSBundle mainBundle]];
UIViewController *vcd = [storyboard instantiateInitialViewController];
[self.navigationController pushViewController:vcd animated:YES];
運行試試
e155700e-a293-4459-8dbf-35f6ccfe0d32.gif
我和小伙伴都驚呆了绸硕,強(qiáng)大的storyboard
源代碼地址