Xcode 新项目删除 storyboard 文件
前言
我们知道,利用 storyboard 开发 UI 界面有着众多好处,最显著的就是简单直观,有着极高的开发效率。
但是,storyboard 也存在着不少不可忽视的缺点:
- 不适合多人协作开发,合并代码产生冲突不容易解决;
- storyboard 量多了之后,开发过程中 Xcode 内加载速度慢;
- 在复杂页面中,产生控件约束冲突不容易定位问题等。
根据以上优劣考虑,我决定采用纯代码的方式进行 UI 界面的开发。我需要删除新建项目中的 storyboard 文件,以著此文记录。
操作步骤
在删除 storyboard 之前,我已经进行了 SceneDelegate 的删除操作,以便完成 iOS 13 以下设备的适配。有相同需求的可以看:Xcode 11 新建项目适配 iOS 13 以下设备
1、清空项目配置中 “Main Interface” 的内容。
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 是新建的时候自带的,需要导入一下头文件 ViewController *vc = [[ViewController alloc] init]; // 设置根控制器并可视 [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 是新建的时候自带的,需要导入一下头文件ViewController *vc = [[ViewController alloc] init];[self.window setRootViewController:vc];[self.window makeKeyAndVisible]; }5、(吐血补充)如果没有删除 SceneDelegate 的话,步骤 1 中的清除操作是不完整的,还需要删除 Application Scene Manifest 底下藏着的 Main!
操作完成,App 在模拟器上运行良好:
至此本文已完,别忘了留下你的三连哦~
总结
以上是生活随笔为你收集整理的Xcode 新项目删除 storyboard 文件的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Xcode 11 新建项目适配 iOS
- 下一篇: P3531 [POI2012]LIT-L