Accesarea unui MKMapView prin bara de tab-

voturi
4

Am o aplicație tabbar și pe prima filă am o MKMapView. Ceea ce vreau să fac este din altă parte în cerere, comutați fila activă la mapview și setați regiunea mapview pe baza datelor din vizualizarea anterioară (cea cu butonul pentru a comuta la mapview).

Ceea ce am încercat este:

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

Acest lucru face ca doar blocarea aplicației în imposibilitatea de a găsi metoda am creat. Nu cred că am ales cea mai buna cale de a pune în aplicare acest lucru, dar de fapt nu sunt sigur cum ar trebui să mă duc despre asta.

[Update] Casting controlerul returnat de către tabBarControlleravut nici un efect.

[Rezolvat] am încercat să arunce o UINavigationControllersă - 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];
Întrebat 26/01/2010 la 03:08
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
1

Sunteți sigur că Controlorul principal vizualizare pentru că fila nu este un UINavigationController? Dacă da, puteți obține controlerul de vedere rădăcină pentru ceea ce ar trebui să fie UIMapViewController ta.

Ar fi bine să o referință directă în AppDelegate, deși, dacă aveți de gând să fie l sun din altă parte.

Publicat 26/01/2010 la 06:57
sursa de către utilizator

voturi
0

De ce nu - l ruta prin AppDelegate ta? AppDelegate poate avea o UITabBarControllerși MKMapView(ambele cu fir prin constructor de interfață.) La UIButtonHandler ar fi atunci , de asemenea , în AppDelegate , astfel încât să poată apela -[UITabBarController setSelectedView:]și -[MKMapView setRegion:].

Publicat 26/01/2010 la 05:46
sursa de către utilizator

voturi
0

Ce doriți să faceți este să creați o subclasă sau o categorie de UITabBarController care

  1. registre pentru evenimente NotificationCenter pe care le definiți
  2. se ocupă de evenimente cu un nou selector. în general, eu folosesc fac / au convenție de denumire pentru ei.

Când evenimentul vine prin setați selectedIndex.

Publicat 26/01/2010 la 05:35
sursa de către utilizator

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