Dostęp do MKMapView poprzez pasku kart

głosy
4

Mam aplikacji umieszczenie zakładek i na pierwszej karcie mam MKMapView. Co chcę zrobić to z innego miejsca we wniosku, przełączyć kartę aktywną do MapView i ustawić regionem MapView w oparciu o dane z poprzedniego widoku (jeden z przycisku, aby przejść do MapView).

Co Próbowałem to:

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

To właśnie powoduje awarię aplikacji w stanie znaleźć sposób stworzyłem. Nie sądzę, że wybrałem najlepszą drogę do realizacji tego, ale ja naprawdę nie wiem, jak mam iść na ten temat.

[Aktualizacja] Casting kontroler zwrócony przez tabBarControllernie miało wpływu.

[Solved] starałem się rzucić UINavigationControllerdo mojego 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];
Utwórz 26/01/2010 o 03:08
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
1

Czy jesteś pewien, że główny kontroler widok na tej karcie nie jest UINavigationController? Jeśli tak, możesz dostać kontroler widoku głównego za to, co powinno być twoim UIMapViewController.

Byłoby dobrze, aby umieścić bezpośrednie odniesienie w AppDelegate choć jeśli będą nazywając go z zewnątrz.

Odpowiedział 26/01/2010 o 06:57
źródło użytkownik

głosy
0

Dlaczego nie droga to za pośrednictwem AppDelegate? AppDelegate może mieć UITabBarControlleri MKMapView(zarówno poprzez interfejs przewodowy budowniczego.) Do UIButtonobsługi będzie wówczas również w AppDelegate tak, że można go nazwać -[UITabBarController setSelectedView:]i -[MKMapView setRegion:].

Odpowiedział 26/01/2010 o 05:46
źródło użytkownik

głosy
0

Co chcesz zrobić, to utworzyć podklasę lub kategorię UITabBarController że

  1. rejestry zdarzeń NotificationCenter które definiują
  2. uchwyty zdarzeń z nowego selektora. I zazwyczaj używają zrobić / nie nazewnictwo dla nich.

Gdy zdarzenie przychodzi poprzez ustawienie selectedIndex.

Odpowiedział 26/01/2010 o 05:35
źródło użytkownik

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