首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在表示UINavigationController时设置UIHostingController标题

在表示UINavigationController时设置UIHostingController标题
EN

Stack Overflow用户
提问于 2022-01-03 16:36:45
回答 1查看 318关注 0票数 1

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

如何创建我的控制器:

代码语言:javascript
运行
复制
let viewModel = SettingsViewModel()
let settingsView = SettingsView().environmentObject(viewModel)
let controller = UIHostingController(rootView: settingsView)
controller.title = "Settings"
return UIHostingController(rootView: settingsView)

SwiftUI内部是什么?

代码语言:javascript
运行
复制
struct SettingsView: View {

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

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

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-03 18:08:49

您将settingsView作为rootviewcontroller返回,它以viewModel作为对象,但它是空的,就像您向第一个let viewModel = SettingsViewModel()声明的那样,因此下面的列表中有零项。

代码语言:javascript
运行
复制
var body: some View {
List(viewModel.settingItems) { item in
    Text(item.rawValue)
 }
}

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

代码语言:javascript
运行
复制
let controller = UIHostingController(rootView: settingsView)
controller.title = "Settings"

我有一个关于swiftUI的更小的信息,但是你的问题肯定是其中一个

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70568805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档