Question

Je veux ajouter une nouvelle vue sur une presse bouton rightcalloutaccessoryview. J'ai actuellement la fonctionnalité pour laisser tomber une épingle sur la carte. Un texte associé (MKAnnotation) avec un titre, sous-titre, et quand je charge chevron tape la broche. Quand je tape sur le chevron (rightcalloutaccessoryview) Je veux une autre vue de pop-up montrant plus d'informations à ce stade. En ce moment, le robinet ne fait rien chevron. Voilà ce que j'ai:

-(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";
     }
 }

J'ai vérifié que cette méthode d'action ne s'appelle à appuyer sur le chevron. Malheureusement, je ne peux pas le faire pour tirer une nouvelle vue. Si quelqu'un sait ce que je fais mal, s'il vous plaît laissez-moi savoir. Je suis un peu une pincée ...

Merci!

Thomas

Était-ce utile?

La solution

    -(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";
     }

}

Il lui manquait cette seule déclaration:

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

Je voudrais trouver une autre façon, donc je ne pas avoir ce nombre magique (99999) là-dedans (plus, il semble un peu immature ...). Je ne suis pas trop inquiet à ce sujet, parce que cela fonctionne bien.

J'ai obtenu mon aide des forums de développeurs Apple, .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top