gpt4 book ai didi

ios - 使用 SceneDelegate 在 AppDelegate 中设置 UIWindow

转载 作者:搜寻专家 更新时间:2023-11-01 05:31:42 35 4
gpt4 key购买 nike

我试图在 AppDelegate 中以编程方式将 var window: UIWindow? 初始化为 UIViewController。但我无法实现。当我将我的 Xcode 更新到 11.0 版 (11A420a) 时,在项目初始化部分,我选择使用 Storyboard 而不是 SwiftUI 但我无法以编程方式分配 UIWindow 的 rootViewController 到 View Controller 。所以首先,我删除了 Main.storyboard 文件,然后我挂起 Info.plist 并像往常一样删除了 Storyboard 部分,但是有一些关于UIApplicationSceneManifest 如下所示。和

<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<false/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
<array>
<dict>
<key>UISceneConfigurationName</key>
<string>Default Configuration</string>
<key>UISceneDelegateClassName</key>
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
</dict>
</array>
</dict>
</dict>

顺便说一句,为了检查发生了什么,我尝试了 SceneDelegate.swiftAppDelegate.swift 文件中的初始化窗口,但模拟器的屏幕完全显示黑屏。那我必须做什么?

提示:var window: UIWindow!变量描述不再添加到 AppDelegate 默认值,它在 SceneDelegate 中。那么我可以从 SceneDelegate 文件设置我的 rootViewController 吗?

在新的 AppDelegate/SceneDelegate 方法中完全以编程方式实现这一点的方法是什么?

最佳答案

AppDelegate 中,我删除了包含 UISceneSession Lifecyle 函数的行,然后它起作用了。

// MARK: UISceneSession Lifecycle

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.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}

func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}

比起将 var window: UIWindow? 属性添加到 AppDelegate 并启动它并以编程方式设置 rootViewController,然后运行它但为了获取详细信息,我会在了解 UIScene 工作流程后立即编辑我的答案。

关于ios - 使用 SceneDelegate 在 AppDelegate 中设置 UIWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58071465/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com