日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

(九十)使用多个storyboard+代码实现控制器的分开管理

發(fā)布時(shí)間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (九十)使用多个storyboard+代码实现控制器的分开管理 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用單個(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方法。


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];self.window.backgroundColor = [UIColor whiteColor];UITabBarController *tb = [[UITabBarController alloc] init];// 加載storyboardUIStoryboard *page1Sb = [UIStoryboard storyboardWithName:@"page1" bundle:nil];UIStoryboard *page2Sb = [UIStoryboard storyboardWithName:@"page2" bundle:nil];// 創(chuàng)建并添加到tabbartb.viewControllers = @[page1Sb.instantiateInitialViewController,page2Sb.instantiateInitialViewController];self.window.rootViewController = tb;[self.window makeKeyAndVisible];return YES; }

通過(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。