首页 > 解决方案 > SwiftUI - 当我创建多平台应用程序时,如何更改场景中的视图?

问题描述

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

但是视图没有改变,我应该如何改变场景的根视图?谢谢

标签: iosswiftxcodeswiftuimultiplatform

解决方案


为此目的引入了SwiftUI 2.0StateObject,因此请使用以下模式

@StateObject var sceneManager = SceneManager.shared

和做

class SceneManager: ObservableObject {
   @Published var state: StateTypeHere
}

推荐阅读