title: What causes updateUIView() to be called in this code?
body: <p>I understand that the change of the @State variable notifies the @Binding that the state has changed but what then causes the updateUIView() method to be called? There is obviously some hidden connection between the @Binding and the call, but how does that work?</p>
  
  <pre><code>//  Experiment_Map_View.swift
  
  import SwiftUI
  import MapKit
  
  struct Experiment_Map_View: UIViewRepresentable {
      @Binding var test: Bool
  
      func updateUIView(_ uiView: MKMapView, context: Context) {
          print("updateUIView")
          print(test)
      }
  
      func makeCoordinator() -&gt; Coordinator {
          Coordinator(self)
      }
  
      final class Coordinator: NSObject, MKMapViewDelegate {
          var control: Experiment_Map_View
  
          init(_ control: Experiment_Map_View) {
              print("init -----------------")
              self.control = control
          }
  
      }
  
      func makeUIView(context: Context) -&gt; MKMapView {
           print("makeUIView")
          let map = MKMapView()
          map.delegate = context.coordinator
          return map
      }
  }
  
  struct MyRootView: View {
      @State var test: Bool = true
  
      var body: some View {
          ZStack {
              Experiment_Map_View(test: $test)
              VStack {
                  Spacer()
                  Button("Next") {
                      print("Next")
                      self.test.toggle()
                  }
              }
          }
      }
  
  }
  
  struct Experiment_Map_View_Previews: PreviewProvider {
      static var previews: some View {
          MyRootView()
      }
  }
  </code></pre>