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