具有场景代理iOS 13的多个情节提要文件
我刚刚在我的旧iOS项目中实现了SceneDelegate,它有两个故事板-具有场景代理iOS 13的多个情节提要文件,ios,swift,xcode,ipad,Ios,Swift,Xcode,Ipad,我刚刚在我的旧iOS项目中实现了SceneDelegate,它有两个故事板-iPhone.storyboard和iPad.storyboard。 有AppDelegate.swift和SceneDelegate.swift两个没有特定代码的文件-只有空的委托方法 问题是,每当我使用不同的设备类型(iPhone或iPad)运行时,我都必须更改情节提要的名称。我的问题是如何将多个情节提要名称设置为info.plist文件的Application Scene Manifest部分。当我现在用iPho
iPhone.storyboard
和iPad.storyboard
。
有AppDelegate.swift
和SceneDelegate.swift
两个没有特定代码的文件-只有空的委托方法
问题是,每当我使用不同的设备类型(iPhone或iPad)运行时,我都必须更改情节提要的名称。我的问题是如何将多个情节提要名称设置为info.plist
文件的Application Scene Manifest
部分。当我现在用iPhone模拟器运行时,它显然是用iPad.Storyboard文件运行的
另外,我已经用
iPhone
和iPad
设置了Main storyboard file base name
和Main storyboard file base name(iPad)
值。目前我发现的唯一变体是在SceneDelegate中设置不同的故事板。不在info.plist。我遇到了这个问题,您需要做的是在info.plist中添加一个新的场景配置。我使用默认配置加载iPhone的故事板,并添加了一个新配置来加载我的iPad故事板
将“启用多个窗口”更改为“是”
然后在AppDelegate.swift中-
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
var config = "Default Configuration"
if IS_IPAD {
print("IPAD - LOADING IPAD CONFIG - \(config)")
config = "ipad Configuration"
}
print("LOADING CONFIG - \(config)")
return UISceneConfiguration(name: config, sessionRole: connectingSceneSession.role)
}
这为我解决了问题,我希望这能帮助人们