赞
踩
import SwiftUI import UIKit @main struct SwiftUIDemoAppWrapper { staticfuncmain() { if#available(iOS14.0, *) { SwiftUIDemoApp.main() }else{ UIApplicationMain( CommandLine.argc, CommandLine.unsafeArgv, nil, NSStringFromClass(SceneDelegate.self)) } } } @available(iOS 14.0, *) struct SwiftUIDemoApp: App { var body:someScene{ WindowGroup { ContentView() } } }
import UIKit import SwiftUI class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { if let windowScene = scene as? UIWindowScene { let window = UIWindow(windowScene: windowScene) window.rootViewController = UIHostingController(rootView: ContentView()) self.window = window window.makeKeyAndVisible() } } func sceneDidDisconnect(_ scene: UIScene) { } func sceneDidBecomeActive(_ scene: UIScene) { } func sceneWillResignActive(_ scene: UIScene) { } func sceneWillEnterForeground(_ scene: UIScene) { } func sceneDidEnterBackground(_ scene: UIScene) { } }
到此,适配代码已经完成。运行一下,会发现启动后是黑屏。因为我们还需要在info.plist文件中配制:
将info文件用Source Code方式打开,添加如下代码:
<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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。