Få tilgang til en MKMapView gjennom fanelinjen

stemmer
4

Jeg har en fanelinja applikasjonen og på den første kategorien jeg har en MKMapView. Det jeg ønsker å gjøre er fra et annet sted i programmet, slå aktiv fane til mapview og sette mapview region basert på dataene i den forrige visningen (den med knappen for å bytte til mapview).

Det jeg har prøvd er:

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

Dette bare fører til at programmet krasjer i stand til å finne den metoden jeg har laget. Jeg tror ikke jeg har valgt den beste veien til å gjennomføre dette, men jeg er egentlig ikke sikker på hvordan jeg skal gå om det.

[Update] Casting styringen returnert av den tabBarControllerikke hadde noen effekt.

[Løst] Jeg prøvde å kaste en UINavigationControllertil min 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];
Publisert på 26/01/2010 klokken 02:08
kilden bruker
På andre språk...                            


3 svar

stemmer
1

Er du sikker på at hovedvisningen kontrolleren for at kategorien er ikke en UINavigationController? I så fall kan du få roten visning kontrolleren for det som bør være din UIMapViewController.

Det ville være bra å sette en direkte referanse i AppDelegate men hvis du kommer til å kalle det fra andre steder.

Svarte 26/01/2010 kl. 05:57
kilden bruker

stemmer
0

Hvorfor ikke legges gjennom din AppDelegate? Den AppDelegate kan ha en UITabBarController, og MKMapView(begge koblet via tilpasningsbygger.) Det UIButtonhandler ville da også være i AppDelegate slik at den kan kalle opp -[UITabBarController setSelectedView:]og -[MKMapView setRegion:].

Svarte 26/01/2010 kl. 04:46
kilden bruker

stemmer
0

Hva du ønsker å gjøre er å lage en underklasse eller en kategori av UITabBarController som

  1. registre for NotificationCenter hendelser som du definerer
  2. håndterer hendelser med en ny velger. Jeg bruker vanligvis gjør / gjorde navnekonvensjon for dem.

Når arrangementet kommer gjennom du setter selectedIndex.

Svarte 26/01/2010 kl. 04:35
kilden bruker

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