I’m setting my MKMapView region inside the viewWillAppear: so that the map displays the good region right as soon as the user sees it:
[mapView setRegion:region animated:NO];
The fist time I do it, I get the region trimmed like so:

Then from there on, when I set the exact same region, I get something like this:

The 2nd screenshot is what I want to get from the start. My guess is the first time I set the region, the mapview isn’t fully loaded or something along these lines. Any pointer of what I should do to fix this?
EDIT: This is probably related: adding an annotation to the mapView before a first call to viewDidAppear is made isn’t working either. The pinView just doesn’t show up. How can I make sure the map view is ready to be used within viewWillAppear?
I stumbled upong this thread that suggested to add a delay to the
setRegion:call (if you require to call it within the viewWillAppear method anyway). Kinda silly, but it works.I’m really curious as of what the mapView is missing to do the proper recentering without this delay.