I have a `FIRSTViewController` that has a button. The button has an IBAction function, in which it calls `CLGeocoder()`. The button is also a segue to a SECONDViewController.

The CLGeocoder inside the IBAction updates two variables, and those variables are passed in the prepareForSegue function. 

However, since `CLGeocoder` acts asynchronously, it is too slow to update the variables before the segue occurs, and thus, the incorrect variables are being passed to the `SECONDViewController`. How could I fix this?

Here's the code in my IBAction method:

```
        geocoder.geocodeAddressString(userInputText!) { (placemarks, error) -> Void in
            if let firstPlacemark = placemarks?[0] {
                self.searchLatitude = "\(firstPlacemark.location!.coordinate.latitude)"
                self.searchLongitude = "\(firstPlacemark.location!.coordinate.longitude)"
                self.addressLoaded = true
            } else {
                //implement error pop up
                print("error")
            }
        }

```