近期开始 Review,所以从 Base 部分开始做些笔记,希望自己能坚持下去,由浅入深,一步一个脚印积累。
首先就创建一个新项目开始吧。我们都知道,Xcode 新建一个 Project 时,都会默认生成一个 Main.storyboard,点击 Main.storyboard,可以看到如下图所示:

此时,如果删除1的箭头或取消2的勾选,运行则会报错提示:

问题的根源在于sb需要一个view controller设置Initial Scene,换句话说就是需要指定story board的第一启动界面。
由于早就习惯代码布局,不喜欢sb界面,所以在练手时删除了main.sb,并在Appdelegate里设置window和自己的rootVC进行启动,结果大意了,运行报错:

仔细排查,发现虽然删除了 main.storyboard,也确保删干净了,但 info.plist 文件键值对中仍设置了 main.storyboard 的 bundle 文件中对应的name,导致应用启动时读取 info.plist 文件时找不到而报错。此时只需要把下图中的键值对删除即可。

所以,如果希望启动后不加载 main.storyboard 的话,最好删除后检查下info.plist文件。或者想自定义 window 和 rootVC 的话,也可以保留 Main.storyboard 不动,在 AppDelegate 做你想要的即可~
网友评论