Domanda

Voglio aggiungere una nuova vista su una pressa tasto rightcalloutaccessoryview. Al momento ho la funzionalità per far cadere uno spillo sulla mappa. Una didascalia (MKAnnotation) con un titolo, sottotitolo e carichi chevron Quando si tocca il perno. Quando si tocca l'chevron (rightcalloutaccessoryview) Voglio un altro al fine di pop-up che mostra ulteriori informazioni a questo punto. In questo momento, il rubinetto chevron non fa nulla. Questo è quello che ho:

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

Ho verificato che questo metodo di azione venga chiamata premendo il chevron. Purtroppo, non posso farlo per tirare su una nuova visualizzazione. Se qualcuno sa di cosa sto facendo male, per favore fatemelo sapere. Sono un po 'di un pizzico ...

Grazie!

Thomas

È stato utile?

Soluzione

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

}

E 'mancava questa dichiarazione:

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

Mi piacerebbe trovare un altro modo in modo da non avere quel numero magico (99999) in là (più, a quanto pare un pò immatura ...). Io non sono troppo preoccupato, perché funziona però.

ho ottenuto il mio aiuto da parte di Apple Developer Forum, qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top