我是 SceneDelegate 设置的新手。我注意到在 info.plist 中,我们有一个映射Scene Configuration:
Configuration Name: Default Configuration <- this key
Delegate Class Name: $(PRODUCT_MODULE_NAME).SceneDelegate <- this file
Run Code Online (Sandbox Code Playgroud)
然后在 AppDelegate 中connectingSceneSession,我们使用 key 返回配置Default Configuration。
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
Run Code Online (Sandbox Code Playgroud)
是否可以避免这种(key -> file)映射info.plist,并以编程方式连接它?
注意:我不是在问故事板。有大量关于删除故事板的教程,我知道这一点。
从 中删除“场景配置”( UISceneConfigurations) 条目Info.plist,并UISceneConfiguration在 中实例化AppDelegate:
// class AppDelegate
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
if connectingSceneSession.role == UISceneSession.Role.windowApplication {
let config = UISceneConfiguration(name: nil, sessionRole: connectingSceneSession.role)
config.delegateClass = SceneDelegate.self
config.storyboard = UIStoryboard(name: "Main", bundle: nil)
return config
}
fatalError("Unhandled scene role \(connectingSceneSession.role)")
}
Run Code Online (Sandbox Code Playgroud)
从手册中:
如果您不在应用程序的 Info.plist 文件中包含场景配置数据,或者您想要动态更改场景配置数据,请实现此方法。UIKit 在创建新场景之前不久会调用此方法。
| 归档时间: |
|
| 查看次数: |
2450 次 |
| 最近记录: |