(九十)使用多个storyboard+代码实现控制器的分开管理
使用單個(gè)storyboard會(huì)使得項(xiàng)目難與管理,使用純代碼又會(huì)過(guò)于麻煩,因此如果能將二者結(jié)合起來(lái),并且使用多個(gè)storyboard,會(huì)使得項(xiàng)目簡(jiǎn)單簡(jiǎn)單、方便許多。
下面以一個(gè)簡(jiǎn)單的視圖關(guān)系為例,介紹多個(gè)storyboard的用法。
①有page1和page2兩個(gè)頁(yè)面,點(diǎn)擊page1的Detail按鈕會(huì)彈出page1Detail視圖,點(diǎn)擊page1Detail的返回按鈕又會(huì)返回。
②page1和page2通過(guò)tabbar切換。
我們創(chuàng)建page1、page2、page1Detail三個(gè)storyboard,每個(gè)有自己的控制器,注意設(shè)置每個(gè)控制器為initial ViewController,否則在加載storyboard的控制器時(shí)會(huì)崩潰。
【具體步驟】
①刪除工程設(shè)置中Main Interface的默認(rèn)設(shè)置,因?yàn)橐胻abbar連接兩個(gè)控制器,應(yīng)當(dāng)通過(guò)代碼實(shí)現(xiàn)。
②在AppDelegate中創(chuàng)建window,創(chuàng)建tabbar,把window的rootViewController設(shè)置為tabbar。
加載storyboard,從storyboard拿到默認(rèn)控制器,然后設(shè)置tabbar的viewControllers為page1、page2,最后不要忘了調(diào)用window的makeKeyAndVisible方法。
通過(guò)這樣設(shè)置,就可實(shí)現(xiàn)tabbar包著page1、page2兩個(gè)控制器。
③在page1中點(diǎn)擊Detail按鈕時(shí)modal一個(gè)detail控制器,同樣是通過(guò)加載storyboard、獲取默認(rèn)控制器、調(diào)用presentViewController:::方法modal這個(gè)控制器。
- (IBAction)detailClick:(id)sender {// 加載storyboardUIStoryboard *detailSb = [UIStoryboard storyboardWithName:@"page1Detail" bundle:nil];// 創(chuàng)建控制器UIViewController *vc = detailSb.instantiateInitialViewController;[self presentViewController:vc animated:YES completion:nil];}
④modal的控制器的返回通過(guò)dismiss實(shí)現(xiàn)。
- (IBAction)backClick:(id)sender {[self dismissViewControllerAnimated:YES completion:nil];}
轉(zhuǎn)載于:https://www.cnblogs.com/aiwz/p/6154106.html
總結(jié)
以上是生活随笔為你收集整理的(九十)使用多个storyboard+代码实现控制器的分开管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Go条件语句、switch和循环语句
- 下一篇: Problem J