如何解决来自UIView的当前视图
我刚刚使用UIViewRepresentable
创建了一个UIKit tableView。
现在,如果选择了tableCell,则需要呈现一个新的SwiftUI视图。
这是我到目前为止所做的:
struct UIKitTableView: UIViewRepresentable {
@Binding var showDetail: Bool
func makeCoordinator() -> Coordinator {
Coordinator(showDetail: self.$showDetail)
}
class Coordinator: NSObject,UITableViewDataSource,UITableViewDelegate {
@Binding var showDetail: Bool
/// Did select row at
func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
self.showDetail = true
}
现在在我的SwiftUI视图中,我可以通过以下方式显示该视图:
NavigationLink(destination: CellDetail(),isActive: self.$showDetail) {
但是我还需要传递相应单元格的数据,我想知道哪种方法最好。
我的另一个问题是:@Binding showDetail方法正确吗?如何改善我的解决方案?
解决方法
根据情况,您描述的是我不明白为什么需要使用UIViewRepresentable
,因为SwiftUI已经以List
的名称实现了很好的实现>
以下是一段代码,可帮助您显示详细视图:
import SwiftUI
struct MasterView: View {
private let cells = [
"Cell 1","Cell 2","Cell 3"
]
var body: some View {
NavigationView {
List(cells,id: \.self) { cell in
NavigationLink(destination: DetailsView(content: cell)) { // Creates all the logic to show detail view.
Text(cell)
}
}.navigationBarTitle("List")
}
}
}
struct DetailsView: View {
let content: String
var body: some View {
VStack {
Text(content)
.font(.largeTitle)
}
}
}
请记住,UIViewRepresentable
仅在SwiftUI中尚未实现视图时才有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。