Frage

Ich möchte einen neuen Blick auf eine rightcalloutaccessoryview Taste drücken hinzuzufügen. Im Moment habe ich die Funktionalität einen Stift auf der Karte zum Fallenlassen. Ein callout (MKAnnotation) mit einem Titel, Untertitel und Chevron lädt, wenn ich den Stift tippen. Als ich den Sparren (rightcalloutaccessoryview) tippen möchte ich eine andere Ansicht weitere Informationen zu diesem Punkt Pop-up zeigt. Gerade jetzt, der Chevron-Hahn tut nichts. Das ist, was ich habe:

-(IBAction)showInfo:(id)sender 
{     
     int calloutButtonPressed = ((UIButton *)sender).tag;
     if(calloutButtonPressed < 99999)
     {
          if(self.DetailView == nil)
          {
               DetailViewController *tmpViewController = [[UIViewController alloc] initWithNibName:@"DetailView" bundle:nil];
               self.DetailView = tmpViewController;
               [tmpViewController release];
          }

          if (calloutButtonPressed == 1) 
          {
                         // Using the debugger, I found that calloutButtonPressed is equal to 0 when the button is pressed.
                         // So I'm not sure what the point of this method is...
                }
          self.DetailView.title = @"Title";
     }
 }

Ich habe festgestellt, dass diese Aktion Methode durch Drücken der Chevron genannt bekommt. Leider kann ich es nicht eine neue Ansicht zu ziehen. Wenn jemand weiß, was mache ich falsch, lass es mich wissen. Ich bin in ein bisschen einer Prise ...

Danke!

Thomas

War es hilfreich?

Lösung

    -(IBAction)showInfo:(id)sender 
{   
     int calloutButtonPressed = ((UIButton *)sender).tag;
     if(calloutButtonPressed < 99999)
     {
          if(self.detailView == nil)
          {
               DetailViewController *tmpViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
               self.detailView = tmpViewController;
               [tmpViewController release];
          }

          [self.navigationController pushViewController:self.detailView animated:YES];

          if (calloutButtonPressed == 0) 
          {
               // TRP - I inserted my view atIndex:99999 to ensure that it gets placed in front of all windows
               // TODO: figure a better way to do this
               [self.view insertSubview:detailView.view atIndex:99999];
          }
          self.detailView.title = @"Title";
     }

}

Es war diese eine Erklärung fehlt:

[self.view insertSubview:detailView.view atIndex:99999];

Ich möchte einen anderen Weg finden, so dass ich (99999) in es nicht, dass die magische Zahl haben müssen (plus, es scheint ein bisschen unreif ...). Ich bin nicht allzu besorgt darüber, weil es aber funktioniert.

Ich habe meine Hilfe der Apple Developer Forums, hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top