【发布时间】:2021-09-12 10:04:43
【问题描述】:
我在我的 SwiftUI 中使用 UIViewControllerRepresentable 类,如下所示:
struct CalendarDayView: UIViewControllerRepresentable {
func makeCoordinator() -> Coordinator {
return Coordinator(self)
}
func makeUIViewController(context: Context) -> DayViewController {
let dayView = DayViewController()
dayView.delegate = context.coordinator
return dayView
}
func updateUIViewController(_ dayView: DayViewController, context: Context) {
dayView.delegate = context.coordinator
}
typealias UIViewControllerType = DayViewController
class Coordinator: NSObject, DayViewDelegate {
var parent: CalendarDayView
init(_ parent: CalendarDayView) {
self.parent = parent
}
func dayViewDidSelectEventView(_ eventView: EventView) {
guard let ckEvent = eventView.descriptor as? EKWrapper else { return }
let ekEvent = ckEvent.ekEvent
endEventEditing() // Cannot find 'endEventEditing' in scope
}
}
}
在 dayViewDidSelectEventView() 函数中,我需要访问来自 DayViewController 类的 endEventEditing() 函数。我已经尝试将父母传递给协调员,但这没有帮助。我无法像这样通过父变量访问 endEventEditing() 函数:
parent.endEventEditing() // Value of type 'CalendarDayView' has no member 'endEventEditing'
那么有没有办法访问由 Coordinator 内部的 makeUIViewController func 生成的 DayViewController 类?
我可以使用/传递dayView 变量
let dayView = DayViewController()
给我的协调员,这样我就可以使用来自这个控制器的功能?
【问题讨论】:
标签: swift swiftui uiviewrepresentable