在Xcode12的新SwiftUI应用生命周期中更改window.rootViewController的方法如下:
import SwiftUI
import UIKit
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// 在应用启动时进行一些初始化操作
return true
}
}
@main
struct YourApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
application(_:didFinishLaunchingWithOptions:)
方法。在该方法中,可以获取到应用的主窗口(window),并进行根视图控制器的更改。func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// 创建一个新的根视图控制器
let newRootViewController = YourNewRootViewController()
// 获取应用的主窗口
if let window = UIApplication.shared.windows.first {
// 设置新的根视图控制器
window.rootViewController = newRootViewController
}
return true
}
在上述代码中,YourNewRootViewController
是你想要设置为根视图控制器的自定义视图控制器类。
需要注意的是,由于SwiftUI应用的生命周期和UIKit应用有所不同,因此在SwiftUI应用中更改根视图控制器需要通过自定义AppDelegate类来实现。
领取专属 10元无门槛券
手把手带您无忧上云