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 文件相关推荐
- xcode11新项目删除main.storyboard 两种方法
方法一 心急的童鞋按照老操作完成后再按照如下操作即可 /**弃用storboard1.info.plist去除<key>UIApplicationSceneManifest</key ...
- [Unity]项目工程文件太大删除Library文件夹会怎么样
项目工程文件大小太大,怎么减少项目工程文件的大小. 删除与文件夹Assets同级的Library文件夹(动辄几十个G,上百G大小),同时减少文件夹Assets的资源文件. 例如音频,图片等等.删除这些 ...
- 【Java 新建项目】使用程序对新项目的各个实体 创建Dao、DaoImpl、Service、ServiceImpl层的文件...
优化之后的步骤: 1.第一步 生成各层文件夹,并且创建GenericDao.java等基础dao[基础dao中涉及到的包名等自行更改] 2.第二步 生成各个实体对应的Dao等层文件 首先给出基本Dao ...
- 新项目新工作空间新仓库新setting文件
maven项目涉及到仓库,本地jar包存放在本地仓库中,新项目新工作空间新仓库新setting文件,可以避免很多问题,不同项目工程的版本可能不一样,所涉及的jar包版本可能也不一样,不分开会有一些冲突 ...
- 【转载】.btc勒索病毒删除+还原文件(Dharma家族新成员)
新变种中检测到Dharma勒索病毒,这次将.btc文件扩展名附加到由其加密的文件中.勒索病毒类似于Dharma的其他变体,旨在利用多种加密模式的组合,以便使受害者计算机上的文件不再能够打开并显示如下: ...
- idea启动项目 报错类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。
D:\SOFT\智慧用电\electric-biz\trunk\src\main\java\org\springblade\common\utils\QRCodeGenerator.java:11:3 ...
- 删除windows文件夹是提示找不到该项目 该项目不在C:\中。请确认该项目的位置,然后重试。...
建一个文本文档,在其中输入以下内容(包括一些汉字,到goto :start为止):REM QBFC Project Options BeginREM HasVersionInfo: YesREM Co ...
- SpringBoot项目启动报错[类文件具有错误的版本 61.0, 应为 55.0 请删除该文件或确保该文件位于正确的类路径子目录中。]
Web server failed to start. Port 80 was already in use. Web server failed to start. Port 80 was alre ...
- 消除Xcode iOS项目的警告
消除Xcode iOS项目的警告 作者 犯傻小二 关注 2016.03.10 15:22* 字数 8287 阅读 3839 评论 0 喜欢 7 如果你有强迫症,看到项目中那么多警告肯定特别心烦 ...
最新文章
- tensorflow---alexnet training (tflearn)
- vs2017运行yolov4_windows10+vs2017+opencv3.4.1配置YOLOV4
- 【Android 逆向】Android 系统文件分析 ( 外部存储设备文件 | sbin 命令程序目录 | dev 字符设备目录 )
- 求圆面积的python代码_《求》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
- 你的导师是哪种类型?
- 【Linux查看tomcat版本】
- Glib2: undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)问题(六)
- 2022-02-09大数据学习日志——Hadoop离线阶段——Hive窗口函数、性能调优
- 基于javaweb+JSP+Servlet火车票网上订票系统(前台、后台)
- 从单机到分布式数据库存储系统的演进
- 单片机c语言实验交通信号灯,单片机设计交通信号灯实验报告.docx
- [JZOJ3339]【NOI2013模拟】wyl8899和法法塔的游戏
- java publisher_Publisher/Subscriber(发布/订阅者)消息模式开发流程
- 基于FME的地形图图面压盖检查工具的设计与制作
- mysql正则匹配大写字母_正则表达式,大写字母,怎么匹配?
- 说一个头疼的问题:后端瞎返回数据导致APP崩溃,你会怎么办?
- 浅谈Spring定时任务
- 自定义带图标文字分割线通用布局,用于列表布局的设置、菜单页的item
- 按条件隐藏bootstrapTable某一列
- 王爽-汇编语言 万字学习总结