Pregunta

Un error muy peculiar:

Tengo BarButtonItem que aparece un UIPopoverController así:

-(void) addNewProjectButtonClicked:(id)sender
{
    //Some Preparations....

    [popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

Como era de esperar, un controlador Popover aparece en el lugar correcto.

Ahora, estoy esperando que cuando estoy tocando en cualquier lugar fuera del popover será despedido.
Pues bien, el único problema es que cuando pulso el BarButton nuevo (el que poped la popover) en lugar de despedir a la antigua y la presentación de un nuevo lo que cabe esperar, el resultado es OTRO Popover en la parte superior de la existente. Esto significa que cuando me presionan y otra vez consigo un montón de panecillos que sólo pueden ser separados con múltiples clics en otro lugar.

Sé que puedo usar un poco de lata de diseño Singleton patrón aquí para resolver esto, pero no está allí un

fácil y construido en la manera de cuidar de él?

Gracias!

¿Fue útil?

Solución

me encontré con el mismo problema hace unos meses, pensó que sería despedir a sí mismo cuando hice tapping lo pero no es el caso.

La forma en que estoy tratando con esto es mantener una referencia a la antigua popover y descartarlo cuando se pulsa el UIBarButtonItem.

-(void) addNewProjectButtonClicked:(id)sender
{
    [popover dismissPopoverAnimated:YES];
    // Set it up again.
    [popover ...];
}

Se podría utilizar una propiedad de gestión de memoria fácil, o manejar por sí mismo.

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