在新创建一个工程时, 你可以选择自动生成带有 TabBarController的工程, 也可以单视图的工程, 但这些都是通过 storyboard 来创建的. 但如何创建一个纯代码的工程呢?
创建空白工程
Xcode 现在不可以建立空白的工程了, 如果想建立空白工程:
1. 可以为 Xcode的创建选项中添加一个空白工程选项,具体的可以了解我的另一篇文章: 为Xcode 添加创建空白工程的模板.
2. 也可以通过现有的创建方式来操作, 先创建一个单视图工程, 然后将自动创建的VIewController删除. 但是后会有下面的问提示,
Unknown class ViewController in Interface Builder file
这是因为在 Mainbundle.storyboard 中的匹配的 controller还是 ViewController 呢, 删除后找不到这个类了, 以致于报上面的提示.正如下面的方案二中的步骤, 就是解决办法. 所以下面核心步骤中, 经过方案一或者是方案二都会解决这个问题.
核心步骤
方案一:
- 删除storyboard
- 删掉格式文件Info.plist中对应的键值,即删掉Main storyboard file base name…main 这行。
- AppDelegate中创建 UIWindow 并为其设置rootViewController
方案二:
- 根据你项目需要来做出操作,你可以在Main.storyboard中把Viewcontroller删除为空, 也可以替换成你想要的RootViewController(也就是你启动app的第一个试图控制器类)
- 在Main.storyboard中把 Is Initial View Controller 取消勾选或者删掉格式文件Info.plist中对应的键值,即删掉Main storyboard file base name…main 这行. 只有这样, 你才能删除自动创建的 Window.
- 将 target ->Deployment Info -> Main Interface 选项清空
- AppDelegate中创建 UIWindow 并为其设置rootViewController
注意
如果你遇到下面的错误,
* Terminating app due to uncaught exception ‘NSInternalInconsistencyException’, reason: ‘Application windows are expected to have a root view controller at the end of application launch’
这个是因为没有 window 的 rootViewController 没有被设置导致的.