gpt4 book ai didi

SwiftUI - 使用@main 设置 rootViewController

转载 作者:行者123 更新时间:2023-12-04 15:17:11 26 4
gpt4 key购买 nike

在 SwiftUI 中使用 SceneDelegate 时,可以创建如下所示的函数来设置 View as shown here.但是,在最新版本中,我们现在使用 WindowsGroup。是否可以编写一个函数来更改 WindowsGroup 中的 View ?

func toContentView() {
let contentView = ContentView()
window?.rootViewController = UIHostingController(rootView: contentView)
}

最佳答案

这是可能的替代方法,实际上与您的旧 toContentView

相同
  1. 辅助类
class Resetter: ObservableObject {
static let shared = Resetter()

@Published private(set) var contentID = UUID()

func toContentView() {
contentID = UUID()
}
}
  1. @main的内容
    @StateObject var resetter = Resetter.shared
var body: some Scene {
WindowGroup {
ContentView()
.id(resetter.contentID)
}
}
  1. 现在可以从代码中的任何位置重置为 ContentView,您只需调用
Resetter.shared.toContentView()

关于SwiftUI - 使用@main 设置 rootViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64122723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com