![](/img/trans.png)
[英]Xcode Could not find a storyboard named 'Main' in bundle NSBundle when not using storyboards
[英]Xcode 11 Could not find a storyboard named 'Main' in bundle NSBundle
之前有人问过这个问题,但我的问题专门针对 Xcode 11 和UISceneConfiguration
。 Before Xcode 11, when you deleted a storyboard ( Main.storyboard
) from your target, then added a new one ( AnotherStoryboard.storyboard
), you would have to update Targets > General > Deployment Info > Main Interface
to use your newly added storyboard. 在 Xcode 11 中,这还不够,应用程序会抛出异常
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Could not find a storyboard named 'Main' in bundle NSBundle
我发现的问题是,在Info.plist
,现在有一个名为UIApplicationSceneManifest
的新键,其中有一个嵌套的UISceneStoryboardFile
,当您更改目标中的主界面时,该键正在更新。 但是,在Info.plist
的顶层仍然有一个UIMainStoryboardFile
键,它持有旧的“Main”storyboard 的标题。 长话短说,如果您删除UIMainStoryboardFile
,该应用程序将运行良好。
我的问题:这是 Xcode 11 中的错误,还是我缺少其他可以防止这种情况发生的错误? 当我尝试调试它并最终自己解决时,我并没有真正找到任何有用的东西。
在您的info.plist
Main
文件中设置了Scene Configuration
,因此它总是会找到该文件并引发异常。 您可以以编程方式设置默认ViewController
。 在您的info.plist
中,将Scene Configuration
为Default configuration
,并将 Select none 设置为Targets
> General
> Deployment Info
> Main Interface
。
你的sceneWillConnectTo
将连接要像
window = UIWindow(frame: UIScreen.main.bounds)
window!.windowScene = windowScene
window!.rootViewController = //your homeVC
window!.makeKeyAndVisible()
在您的 info.plist 中,您必须设置此属性 Application Scene Manifest -> Scene Configuration -> Application Session Role -> Item 0 -> Storyboard Name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.