呈现 UIHostingController 时设置 UINavigationController 标题

Set UINavigationController Title when presenting UIHostingController

我有一个 SwiftUI 视图被推送到 UINavigationController 堆栈。我在 SwiftUI 中没有任何 NavigationView,我想显示标题文本。我怎样才能做到这一点?

如何创建我的控制器:

let viewModel = SettingsViewModel()
let settingsView = SettingsView().environmentObject(viewModel)
let controller = UIHostingController(rootView: settingsView)
controller.title = "Settings"
return UIHostingController(rootView: settingsView)

SwiftUI 里面有什么

struct SettingsView: View {

// MARK: - Properties
@EnvironmentObject var viewModel: SettingsViewModel

// MARK: - View
var body: some View {
    List(viewModel.settingItems) { item in
        Text(item.rawValue)
    }
}

}

您将 settingsView 作为 rootviewcontroller 返回,它具有 viewModel 作为对象,但它是空的,就像您首先声明的那样 let viewModel = SettingsViewModel() 所以下面的列表有零项。

var body: some View {
List(viewModel.settingItems) { item in
    Text(item.rawValue)
 }
}

另一方面,您声明了 controller 但它从未使用过

let controller = UIHostingController(rootView: settingsView)
controller.title = "Settings"

I have a really smaller information about swiftUI but your problem must be one of these