MapView Annotation mit eigener XIB

  • MapView Annotation mit eigener XIB

    Hi,

    ich stehe vor einem Problem finde aber die Lösung nicht. Ich habe einen TabBarController. Dieser zeigt im 3. Tab ein MKMapView an. Das geht auch gut. Annotations werden auch einwandfrei angezeigt. Wenn man dann drauf klickt soll eine XIB geladen werden, da ich einen eigenen View anzeigen möchte. Das habe ich so realisiert:

    C-Quellcode

    1. -(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
    2. if ([view.annotation isKindOfClass:[MKUserLocation class]]) {
    3. return;
    4. }
    5. NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"MarkerAnnotation" owner:self options:nil];
    6. MarkerAnnotationView *markerAnnotationView = [views objectAtIndex:0];
    7. MarkerAnnotation *markerAnnotation = view.annotation;
    8. Marker *marker = markerAnnotation.marker;
    9. /* Hier setze ich die Daten für den View */
    10. markerAnnotationView.frame = CGRectMake(0.0f, 0.0f, 300.0f, 340.0f);
    11. view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, markerAnnotationView.frame.size.width, markerAnnotationView.frame.size.height);
    12. [view addSubview:markerAnnotationView];
    13. CGFloat spannX = 0.0000000000000001;
    14. CGFloat spannY = 0.0000000000000001;
    15. MKCoordinateRegion newRegion = MKCoordinateRegionMake(markerAnnotation.coordinate, MKCoordinateSpanMake(spannX, spannY));
    16. [mapView setRegion:newRegion];
    17. }
    Alles anzeigen
    Nur leider passiert wenn ich den Code ausführe das der komplette View also von ganz oben bis zur TabBar schwarz wird. Wenn ich dann Tabs wechsele und wieder dahin komme sehe ich dann erst den Marker aber FullScreen. Ich habe im Debugger mal geschaut er nimmt die Frames aber nach der Methode wird der View komischerweise FullScreen. Was mache ich denn falsch? Habe ich irgendwo einen Denkfehler?

    Viele Grüße
    Nils
  • macmoonshine schrieb:

    Bist du dir sicher, dass du self als File's Owner willst? damit überschreibst du dir ggf. Outlets oder den View deines Controllers.
    Das kann der Fehler sein. Aber was soll ich da sonst angeben? nil nimmt er mir nicht. Und wenn ich den view angebe kommt:


    *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MKAnnotationView 0x7ff31d9255e0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view.'