我通常以编程方式构建UI,但由于某些原因,在更新到Xcode11之后,无法删除故事板或删除引用。它总是抛出一个错误,说缺少故事板。通常我会删除main并转到项目设置,同时删除Main关键字text。然后我删除了viewController,添加了一个像HomeViewController这样的新viewController,并在应用委托中使用了以下代码。
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
window = UIWindow()
window?.makeKeyAndVisible()
let nc = UINavigationController(rootViewController: HomeViewController())
window?.rootViewController = nc
return true
}我遵循了在以前的Xcode版本中使用的完全相同的步骤,并且它过去是有效的(不删除故事板文件本身)。只要我添加了上面的代码。现在看来情况并非如此。如果我删除默认的ViewController文件并添加一个新的HomeViewController文件并添加上面的代码,抛出一个错误,指出缺少故事板或故事板不包含HomeViewController。
发布于 2019-10-19 08:54:09
您不会这么说,但我假设您正在创建一个以iOS 13为目标的新项目?如果没有,您可以忽略这一点:-)
在新的iOS 13+项目的XCode 11中,他们改变了从代码启动UI的方式。它不再发生在AppDelegate中,而是发生在SceneDelegate中。
在我花了太长时间弄清楚发生了什么之后,我把它写在了一篇博客文章中,并认为它可能会对其他人有所帮助。我将链接到它,而不是重复它:
XCode 11 New Project Without Storyboard
https://stackoverflow.com/questions/58457179
复制相似问题