繁体   English   中英

Xcode 11 在捆绑包 NSBundle 中找不到名为“Main”的 storyboard

[英]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 ConfigurationDefault 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM