У меня есть приложение с вкладками, и на первой вкладке у меня есть MKMapView
. Что я хочу сделать, так это откуда-то еще в приложении, переключить активную вкладку на представление карты и установить регион просмотра карты на основе данных в предыдущем представлении (тот, у которого есть кнопка для переключения на представление карты).
Что я пробовал:
[self.tabBarController setSelectedView:0];
UIMapViewController *mapView = [self.tabBarController.viewControllers objectAtIndex:0];
[mapView displayBookmarkAnnotation:bookmark];
Это просто приводит к сбою приложения, которое не может найти метод, который я создал. Я не думаю, что выбрал лучший путь для реализации этого, но я действительно не уверен, как мне это сделать.
[Обновление] Приведение контроллера, возвращенного tabBarController
, не дало результата.
[Решено] Я пытался добавить UINavigationController
в свой mapView
[self.tabBarController setSelectedView:0];
UINavigationController *navController = [self.tabBarController.viewControllers objectAtIndex:0];
//if the tab has other views open, return to mapView
[navController popToRootViewControllerAnimated:YES];
UIMapViewController *mapView = (UIMapViewController *)[navController visibleViewController];
[mapView customMessage:object];