Acceso a una MKMapView a través de la barra de pestañas

votos
4

Tengo una aplicación de barra de pestañas y en la primera pestaña tengo una MKMapView. Lo que quiero hacer es de otro lugar en la aplicación, cambiar la pestaña activa a la MapView y establece región del MapView en base a los datos en la vista anterior (el que tiene el botón para cambiar al MapView).

Lo que he intentado es:

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

Esto sólo hace que el cierre de la aplicación no puede encontrar el método que he creado. No creo que he elegido el mejor camino para implementar esto, pero realmente no estoy seguro de cómo debería ir sobre ella.

[Update] casting el controlador devuelto por el tabBarControllerno tuvo ningún efecto.

[Resuelto] yo estaba tratando de echar una UINavigationControllera mi 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];
Publicado el 26/01/2010 a las 03:08
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
1

¿Estás seguro de que el principal controlador de vista de esa pestaña no es una UINavigationController? Si es así, se puede obtener el controlador de vista raíz de lo que debe ser su UIMapViewController.

Sería bueno poner una referencia directa en el AppDelegate aunque si va a estar llamando desde otro lugar.

Respondida el 26/01/2010 a las 06:57
fuente por usuario

votos
0

¿Por qué no enruta a través de su AppDelegate? El AppDelegate puede tener una UITabBarControllery la MKMapView(tanto por cable a través constructor de interfaces.) El UIButtoncontrolador entonces también estar en el AppDelegate para que pueda llamar -[UITabBarController setSelectedView:]y -[MKMapView setRegion:].

Respondida el 26/01/2010 a las 05:46
fuente por usuario

votos
0

Lo que se quiere hacer es crear una subclase o una categoría de la que UITabBarController

  1. Para la NotificationCenter eventos que se definen
  2. maneja los eventos con un nuevo selector. Yo generalmente uso / consideraron convención de nombres para ellos.

Cuando el caso llega a través de establecer la selectedIndex.

Respondida el 26/01/2010 a las 05:35
fuente por usuario

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