Pregunta

Quiero añadir una nueva visión de una pulsación de botón rightcalloutaccessoryview. En este momento tengo la funcionalidad para dejar caer un alfiler en el mapa. Una anotación (MKAnnotation) con un título, subtítulo, y cargas del galón Al tocar en el pin. Al tocar en el galón (rightcalloutaccessoryview) Quiero otra vista para que aparezca mostrar más información en este momento. En este momento, el grifo Chevron no hace nada. Esto es lo que tengo:

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

He comprobado que este método de acción se consiga llamar al presionar la flecha tipo. Por desgracia, no puedo conseguir que tire hacia arriba de un nuevo punto de vista. Si alguien sabe lo que estoy haciendo mal, por favor hágamelo saber. Estoy en un poco de una pizca ...

Gracias!

Thomas

¿Fue útil?

Solución

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

}

faltaba ésta declaración:

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

Me gustaría encontrar otra manera por lo que no tiene que tener ese número mágico (99999) allí (además, parece un poco inmadura ...). No estoy muy preocupado por eso, ya que funciona sin embargo.

Tengo mi ayuda de los Foros de desarrolladores de Apple, aquí .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top