2011-01-16 1 views
0

Ich habe eine einfache Karten-App mit mehreren Pins in einer Kartenansicht. Mein Ziel ist es, auf einen Pin zu tippen, einen Callout mit einer Zubehöransicht anzuzeigen und zu einem Detailansicht-Controller zu wechseln, wo Sie diese Pin-/Locations-Details bearbeiten können. Das alles funktioniert gut, aber sobald ich den Detailansicht-Controller platziere, ist das Callout auf der Kartenansicht immer noch da, was ich will, aber es hat immer noch die alten unbearbeiteten Werte. Wie kann ich die Callout-Ansicht aktualisieren/aktualisieren, wenn der Detailansicht-Controller aufgerufen wird?Ein AnnotationView-Callout aktualisieren, nachdem in View Controller eingegebene Details aus der Kartenansicht übernommen wurden

Ich verwende Core Data mit einer einfachen Datenbank. Ich habe versucht, controllerdidchangecontent zu verwenden, Map View Controller zeigt Methoden usw. an, aber mein Hauptproblem ist die Identifizierung, welches Objekt hinzugefügt/aktualisiert/gelöscht wurde und welches der entsprechende Callout/ausgewählte Pin ist.

Jede Hilfe willkommen ...

Antwort

0

Nicht sicher, ob man aber die Art und Weise finden Sie Ihre Antwort war, es zu tun ist MKAnnotation Klasse und das Erstellen von benutzerdefinierter Annotation und Weitergabe zu verlängern, während Ortsmarken zu schaffen. Später können Sie sie aus der Anmerkungseigenschaft von MKAnnotationView abrufen. mess direkt mit dem Subviews der callout

Hier finden Sie eine gute Umsetzung hier

http://www.slideshare.net/360conferences/getting-oriented-with-mapkit-everything-you-need-to-get-started-with-the-new-mapping-framework

0

Die einzige Art, wie ich die Legende Informationen finden konnte, war zu aktualisieren.

Die Callout-Ansicht ist die erste Unteransicht der Anmerkungsansicht.

Im folgenden Beispiel, aktualisiere ich die subtitle.The Titellabel ist der 6. und der Untertitel ist der 7. subview des callout:

if (myAnnotationView.subviews.count > 0) 
    ((UILabel*)[((UIView*)[myAnnotationView.subviews objectAtIndex:0]).subviews objectAtIndex:7]).text = @"Some example"; 
+0

Tatsächlich aber ändert den Inhalt der Untertitel (Index 7) aktualisiert das Callout nicht (es funktionierte nicht für mich). Wenn Sie den Titel ändern, ändert sich auch nicht die Größe des Callouts. –

+0

@EduardoMauro Kannst du mir bitte sagen, auf welchem ​​iOS hast du das probiert? Vielleicht haben sie das Layout in neuer als iOS 5.1.1 geändert, in diesem Fall habe ich auch ein Problem :). In Bezug auf die Größenänderung, ja, wahrscheinlich müssen Sie das auch manuell tun :(... –

+0

IOS 4.2. Wenn Sie mehr Informationen finden, lassen Sie es mich wissen. –

Verwandte Themen