无法在 iOS 13 上更改 Main.storyboard 的名称 [Xcode 11 GM 种子 2]
Posted
技术标签:
【中文标题】无法在 iOS 13 上更改 Main.storyboard 的名称 [Xcode 11 GM 种子 2]【英文标题】:Cannot change Main.storyboard's name on iOS 13 [Xcode 11 GM seed 2] 【发布时间】:2019-09-19 07:14:59 【问题描述】:在带有 Xcode 11 GM 种子 2 的 ios 13 模拟器上,应用程序在 Main.storyboard
的名称更改后崩溃(Info.plist 也已更改)。将选项Main Interface
设置为空会导致同样的问题。 iOS 13 系统总是试图找到Main.storyboard
,并失败并显示崩溃消息:
*** reason: 'Could not find a storyboard named 'Main' in bundle
在 iOS 12 及更早版本上一切正常。这看起来像是 iOS 13 中的一个错误。
有人遇到同样的问题吗?有什么解决办法吗?
【问题讨论】:
在info.plist
文件中也改一下
您确定该文件包含在构建中吗?
@OrkhanAlikhanov,操作都很好,因为该应用程序运行在 iOS 12 上。
如果您再次重命名为“Main.storyboard”,那么它可以工作了吗?
@NiravKotecha,是的。
【参考方案1】:
Swift 5 与 iOS 13
在 Application 下的 info.plist 文件中需要进行更多更改 场景清单组。
在Application Scene Manifest中更改名称。
补充:
如果要在iOS13上创建不带storyboard的根窗口,需要从Info.plist中删除Main storyboard file base name
和Storyboard Name
项,然后创建窗口以编程方式在SceneDelegate
:
class AppDelegate: UIResponder, UIApplicationDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
// Override point for customization after application launch.
if #available(iOS 13.0, *)
//Do nothing here
else
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
return true
class SceneDelegate: UIResponder, UIWindowSceneDelegate
var window: UIWindow?
@available(iOS 13.0, *)
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
guard let windowScene = (scene as? UIWindowScene) else return
window = UIWindow(windowScene: windowScene)
// continue to create view controllers for window
//......
【讨论】:
我尝试更改 both 事件(如this answer所述),但它仍然不起作用:它在@UIApplicationMain
上崩溃。我放弃了
@NicolasMiari,我更新了编程方式的答案,请检查一下。【参考方案2】:
更改Main.storyboard
的名称后,将Main storyboard file base name
从Info.plist
更改。当然,您可以将其从General
-Deployment info
-Main Interface
更改。
【讨论】:
如您所说的正确操作会出现问题。以上是关于无法在 iOS 13 上更改 Main.storyboard 的名称 [Xcode 11 GM 种子 2]的主要内容,如果未能解决你的问题,请参考以下文章
无法在 iOS 13 Visual Studio 中更改导航栏外观
更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录
使用方法调配一次在所有 UIViewController 实例上更改 iOS13 上的 modalPresentationStyle