Πρόσβαση σε MKMapView μέσα από την μπάρα

ψήφοι
4

Έχω μια εφαρμογή Tabbar και στην πρώτη καρτέλα έχω ένα MKMapView. Αυτό που θέλω να κάνω είναι από κάπου αλλού στην εφαρμογή, μεταβείτε την ενεργή καρτέλα στο MapView και να ορίσετε την περιοχή της MapView που με βάση τα στοιχεία στην προηγούμενη προβολή (το ένα με το κουμπί για να μεταβείτε στο MapView).

Αυτό που έχω δοκιμάσει είναι:

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

Αυτό προκαλεί απλώς την εφαρμογή για να διακοπεί η λειτουργία του δεν μπορεί να βρει τη μέθοδο που δημιούργησα. Δεν νομίζω ότι έχω επιλέξει τον καλύτερο δρόμο για την υλοποίησή του, αλλά δεν είμαι σίγουρος πώς θα πρέπει να πάει για αυτό.

[Update] Casting τον ελεγκτή επέστρεψε από τη tabBarControllerμη είχε αποτέλεσμα.

[Solved] προσπαθούσα να ρίξει ένα UINavigationControllerγια να 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];
Δημοσιεύθηκε 26/01/2010 στις 03:08
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
1

Είστε σίγουροι ότι ο κύριος υπεύθυνος άποψη για αυτήν την καρτέλα δεν είναι ένα UINavigationController; Αν ναι, μπορείτε να πάρετε τον ελεγκτή άποψη root γι 'αυτό που θα πρέπει να είναι UIMapViewController σας.

Θα ήταν καλό να βάλετε μια άμεση αναφορά στο AppDelegate κι αν πρόκειται να το καλείτε από αλλού.

Απαντήθηκε 26/01/2010 στις 06:57
πηγή χρήστη

ψήφοι
0

Γιατί να μην το δρομολόγιο μέσω AppDelegate σας; Η AppDelegate μπορεί να έχει UITabBarControllerκαι η MKMapView(οι δύο ενσύρματα μέσω οικοδόμος διεπαφή.) Ο UIButtonχειριστής θα ήταν επίσης στο AppDelegate, έτσι ώστε να μπορούν να καλέσουν -[UITabBarController setSelectedView:]και -[MKMapView setRegion:].

Απαντήθηκε 26/01/2010 στις 05:46
πηγή χρήστη

ψήφοι
0

Τι θέλετε να κάνετε είναι να δημιουργήσετε μια υποκατηγορία ή μια κατηγορία του UITabBarController που

  1. μητρώα για NotificationCenter εκδηλώσεις που έχετε ορίσει
  2. χειρίζεται τα γεγονότα με μια νέα επιλογέα. Εγώ γενικά χρησιμοποιούν κάνω / δεν σύμβαση ονομασίας για αυτούς.

Όταν η εκδήλωση έρχεται μέσα από ορίσετε την selectedIndex.

Απαντήθηκε 26/01/2010 στις 05:35
πηγή χρήστη

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