Pergunta

Eu quero adicionar um novo ponto de vista sobre um aperto de botão rightcalloutaccessoryview. Eu tenho atualmente a funcionalidade para deixar cair um alfinete no mapa. Uma chamada (MKAnnotation) com um título, legenda, e cargas da viga quando toco no pino. Quando toco no chevron (rightcalloutaccessoryview) Eu quero uma outra visão para aparecer mostrando mais informações neste momento. Neste momento, a torneira Chevron não faz nada. Isto é o que eu tenho:

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

Tenho verificado que este método de ação não são chamados após pressionar a Chevron. Infelizmente, eu não posso obtê-lo a puxar uma nova visão. Se alguém sabe o que estou fazendo de errado, por favor me avise. Eu estou em um pouco de uma pitada ...

Obrigado!

Thomas

Foi útil?

Solução

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

}

Ele estava faltando essa declaração um:

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

Eu gostaria de encontrar uma outra maneira para que eu não tenho que ter esse número mágico (99999) lá (mais, parece meio imaturo ...). Eu não estou muito preocupado com isso, porque ele funciona embora.

Eu tenho a minha ajuda dos Developer Forum Apple, aqui .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top