Доступ к MKMapView через панель вкладок

голоса
4

У меня есть приложение TabBar и на первой вкладке у меня есть MKMapView. То , что я хочу сделать , это где - то еще в приложении, перейдите на вкладку активной в MapView и установить область в MAPview, основываясь на данных предыдущего обзора (один с кнопкой для переключения на MapView).

То, что я попытался это:

[self.tabBarController setSelectedView:0];
UIMapViewController *mapView = [self.tabBarController.viewControllers objectAtIndex:0];
[mapView displayBookmarkAnnotation:bookmark];

Это просто вызывает приложение к сбою не удалось найти метод, который я создал. Я не думаю, что я выбрал лучший путь для реализации этого, но я действительно не знаю, как я должен идти об этом.

[Обновление] Casting контроллера , возвращенное 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];
Задан 26/01/2010 в 03:08
источник пользователем
На других языках...                            


3 ответов

голоса
1

Вы уверены, что главный контроллер просмотра для этой вкладки не UINavigationController? Если да, то вы можете получить контроллер представления корня для того, что должно быть вашим UIMapViewController.

Было бы хорошо поставить прямую ссылку на AppDelegate, хотя, если вы собираетесь называть его из других источников.

Ответил 26/01/2010 в 06:57
источник пользователем

голоса
0

Почему не маршрут его через AppDelegate? AppDelegate может иметь UITabBarControllerи MKMapView(как проводной , так через интерфейс строитель.) UIButtonОбработчик затем также в AppDelegate так , что он может позвонить -[UITabBarController setSelectedView:]и -[MKMapView setRegion:].

Ответил 26/01/2010 в 05:46
источник пользователем

голоса
0

То, что вы хотите сделать, это создать подкласс или категорию UITabBarController что

  1. Регистры для NotificationCenter событий, которые определяют
  2. обрабатывает события с новым селектором. Я обычно использую делать / сделал именования для них.

Когда событие наступает через установить SelectedIndex.

Ответил 26/01/2010 в 05:35
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more