我正在尝试从 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
但是 View 没有改变,我应该如何改变场景的 Root View ? 谢谢
最佳答案
SwiftUI 2.0 为此目的引入了 StateObject
,因此请使用以下模式
@StateObject var sceneManager = SceneManager.shared
制作
class SceneManager: ObservableObject {
@Published var state: StateTypeHere
}
关于ios - SwiftUI - 创建多平台应用程序时,如何更改场景中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63691287/