这是我的ContentView.swift
文件:
struct ContentView: View {
var body: some View {
NavigationView {
MapView()
}
}
}
这是我的MapView.swift
文件:
struct MapView: UIViewRepresentable {
func makeUIView(context: Context) -> MKMapView {
let mapView = MKMapView(frame: .zero)
return mapView
}
func updateUIView(_ view: MKMapView, context: Context) {
print("test")
}
}
使用这些代码行,当我运行应用程序时,它将在控制台中test
打印两次。
但是当我更改ContentView
并在其中隐藏NavigationView
时,是这样的:
struct ContentView: View {
var body: some View {
// NavigationView {
MapView()
// }
}
}
现在它在控制台中打印一个test
。
实际上,这意味着当我们将NavigationView
与UIViewRepresentable
一起使用时,它会调用两次updateUIView
函数,这似乎是错误的。
我们如何处理呢?