我正在尝试从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
}

10-08 05:57