我正在尝试从SwiftUI创建一个多平台应用程序。
这是我的代码在
@main
struct MyApp: App
@State var sceneManager = SceneManager.shared
var body: some Scene {
WindowGroup {
if sceneManager.state == .landing {
LandingPageView()
} else if sceneManager.state == .historyRecord {
HistoryRecordView()
}
}
}
登录成功后,我将把SceneManager.shared属性从.landing
更改为.historyRecord
但是视图没有改变,如何更改场景的根视图?谢谢
最佳答案
SwiftUI 2.0 为此目的引入了StateObject
,因此请遵循以下模式
@StateObject var sceneManager = SceneManager.shared
和做class SceneManager: ObservableObject {
@Published var state: StateTypeHere
}