我正在尝试使用以下代码从 UI Kit 展示一些 SwiftUI:
class SavedListViewController: UIHostingController<SavedEventListView> {
required init?(coder: NSCoder) {
let listView = SavedEventListView().environmentObject(RemindersViewModel())
super.init(rootView: listView) // BUILD ERROR HERE = "Cannot convert value of type 'some View' to expected argument type 'SavedEventListView'"
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到 Cannot convert value of type 'some View' to expected argument type 'SavedEventListView'
如果我尝试强制铸造listView!SavedEventListView,应用程序崩溃。
如果我不提供环境变量,应用程序也会崩溃。
无法将“SwiftUI.ModifiedContent<_.SavedEventListView, SwiftUI.EnvironmentKeyWritingModifier.RemindersViewModel>>>”(0x7fff89e46b90)类型的值转换为“_.SavedEventListView”(0x10a2447d0)。
有关如何解决此问题并呈现此 swiftui 视图的任何建议?谢谢
其他代码
class RemindersViewModel: ObservableObject {
@Published var savedEvents = RemindersStore().fetchRuns()
}
struct SavedEventListView: View {
@EnvironmentObject var reminders: RemindersViewModel
var body: some View {
NavigationView {
List {
ForEach(reminders.savedEvents) { reminder in
HStack {
VStack(alignment: .leading) {
HStack {
Text("$\(reminder.title)")
.font(.headline)
Text("$\(reminder.category)")
.font(.headline)
.fontWeight(.light)
}
Spacer()
Text("$\(reminder.date)")
.font(.subheadline)
}
Spacer()
Image(uiImage: UIImage(systemName: "calendar.badge.minus")!)
}
}
}
.navigationBarTitle("Reminders")
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我将使用的最简单的变体:
class SavedListViewController: UIHostingController<AnyView> {
required init?(coder: NSCoder) {
let listView = SavedEventListView().environmentObject(RemindersViewModel())
super.init(rootView: AnyView(listView))
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
636 次 |
| 最近记录: |