Přístup k MKMapView přes liště

hlasů
4

Mám aplikaci tabbar a na první kartě mám MKMapView. To, co chci udělat, je z někde jinde v aplikaci, přepněte na kartu aktivní na MapView a nastavit region na MapView je na základě údajů uvedených v předchozím pohledu (ten s tlačítkem pro přepnutí do MapView).

To, co jsem se snažil je:

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

To jen způsobí selhání aplikace nemůže najít metodu jsem vytvořil. Nemyslím si, že jsem si vybral nejlepší cestu k realizaci tohoto, ale já opravdu nejsem jistý, jak bych měl jít o tom.

[Aktualizace] Casting regulátor vrácený tabBarControllerneměl žádný vliv.

[Vyřešeno] Snažil jsem se vrhala UINavigationControllerdo mého 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];
Položena 26/01/2010 v 03:08
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
1

Jste si jisti, že v hlavním zobrazení ovladač pro danou kartu není v UINavigationController? Pokud ano, můžete získat řadič kořenové pohledu na to, co by mělo být vaše UIMapViewController.

Bylo by dobré dát přímý odkaz na AppDelegate ale pokud se bude volat to odjinud.

Odpovězeno 26/01/2010 v 06:57
zdroj uživatelem

hlasů
0

Proč ne Cesta to prostřednictvím svého AppDelegate? AppDelegate může mít UITabBarControllera MKMapView(oba zapojeny přes stavitele rozhraní.) Tento UIButtonhandler by pak být rovněž ve AppDelegate tak, aby mohl zavolat -[UITabBarController setSelectedView:]a -[MKMapView setRegion:].

Odpovězeno 26/01/2010 v 05:46
zdroj uživatelem

hlasů
0

Co chcete udělat, je vytvořit podtřídy nebo kategorii UITabBarController že

  1. registry pro NotificationCenter událostí, které definují
  2. zpracovává události s novým voliče. I obecně používají do / to pojmenování pro ně.

Když událost projde nastavení SelectedIndex.

Odpovězeno 26/01/2010 v 05:35
zdroj uživatelem

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