Accès à une MKMapView dans la barre d'onglets

voix
4

J'ai une application et TabBar sur le premier onglet j'ai un MKMapView. Ce que je veux faire est d'ailleurs dans l'application, mettez l'onglet actif au MapView et mettre la région à partir des données de la vue précédente du MapView (celui avec le bouton pour passer à la MapView).

Ce que j'ai essayé est:

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

Cela provoque simplement l'application de tomber en panne incapable de trouver la méthode que je crée. Je ne pense pas que j'ai choisi le meilleur chemin pour mettre en œuvre, mais je ne suis vraiment pas sûr de savoir comment je devrais aller à ce sujet.

[Mise à jour] Coulée du contrôleur renvoyé par le tabBarControllerpas eu d' effet.

[Résolu] Je suis en train de jeter un UINavigationControllerà mon 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];
Créé 26/01/2010 à 03:08
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
1

Êtes-vous sûr que le contrôleur principal de vue pour cet onglet est pas un UINavigationController? Si oui, vous pouvez obtenir le contrôleur de vue racine pour ce qui devrait être votre UIMapViewController.

Il serait bon de mettre une référence directe dans le AppDelegate mais si vous allez l'appeler d'ailleurs.

Créé 26/01/2010 à 06:57
source utilisateur

voix
0

Pourquoi ne pas faire passer dans votre AppDelegate? Le AppDelegate peut avoir un UITabBarControlleret MKMapView(câblé par le constructeur d'interface). Le UIButtongestionnaire serait alors aussi dans le AppDelegate afin qu'il puisse appeler -[UITabBarController setSelectedView:]et -[MKMapView setRegion:].

Créé 26/01/2010 à 05:46
source utilisateur

voix
0

Ce que vous voulez faire est de créer une sous-classe ou une catégorie de la UITabBarController que

  1. registres pour les événements NotificationCenter que vous définissez
  2. gère les événements avec un nouveau sélecteur. J'utilise généralement faire / ne convention de nom pour eux.

Lorsque l'événement passe par vous définissez le selectedIndex.

Créé 26/01/2010 à 05:35
source utilisateur

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