Xcode 新项目删除 storyboard 文件
前言
我們知道,利用 storyboard 開發(fā) UI 界面有著眾多好處,最顯著的就是簡單直觀,有著極高的開發(fā)效率。
但是,storyboard 也存在著不少不可忽視的缺點:
- 不適合多人協(xié)作開發(fā),合并代碼產(chǎn)生沖突不容易解決;
- storyboard 量多了之后,開發(fā)過程中 Xcode 內(nèi)加載速度慢;
- 在復(fù)雜頁面中,產(chǎn)生控件約束沖突不容易定位問題等。
根據(jù)以上優(yōu)劣考慮,我決定采用純代碼的方式進行 UI 界面的開發(fā)。我需要刪除新建項目中的 storyboard 文件,以著此文記錄。
操作步驟
在刪除 storyboard 之前,我已經(jīng)進行了 SceneDelegate 的刪除操作,以便完成 iOS 13 以下設(shè)備的適配。有相同需求的可以看:Xcode 11 新建項目適配 iOS 13 以下設(shè)備
1、清空項目配置中 “Main Interface” 的內(nèi)容。
2、刪除項目中 Main.storyboard 文件,因為本項目的加載界面也比較簡單,所以保留 LaunchScreen.storyboard 作為 App 啟動界面。
3、 在 AppDelegate.m 文件的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中添加以下代碼:
// 初始化 self.window self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; self.window.backgroundColor = [UIColor whiteColor]; // 這個 ViewController 是新建的時候自帶的,需要導(dǎo)入一下頭文件 ViewController *vc = [[ViewController alloc] init]; // 設(shè)置根控制器并可視 [self.window setRootViewController:vc]; [self.window makeKeyAndVisible];4、(補充)如果沒有刪除 SceneDelegate 的話,步驟 3 作廢,改用本步驟。在 SceneDelegate.m 文件的 - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions 的方法中新增下面代碼。
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {// 初始化 self.windowUIWindowScene *windowScene = (UIWindowScene *)scene;self.window = [[UIWindow alloc] initWithWindowScene:windowScene];self.window.frame = windowScene.coordinateSpace.bounds;self.window.backgroundColor = [UIColor whiteColor];// 這個 ViewController 是新建的時候自帶的,需要導(dǎo)入一下頭文件ViewController *vc = [[ViewController alloc] init];[self.window setRootViewController:vc];[self.window makeKeyAndVisible]; }5、(吐血補充)如果沒有刪除 SceneDelegate 的話,步驟 1 中的清除操作是不完整的,還需要刪除 Application Scene Manifest 底下藏著的 Main!
操作完成,App 在模擬器上運行良好:
至此本文已完,別忘了留下你的三連哦~
總結(jié)
以上是生活随笔為你收集整理的Xcode 新项目删除 storyboard 文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Xcode 11 新建项目适配 iOS
- 下一篇: P3531 [POI2012]LIT-L