Domanda

Un bug molto particolare:

Ho BarButtonItem che salta fuori un UIPopoverController del genere:

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

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

Come previsto, un controller Popover appare nel posto giusto.

Ora, mi aspetto che quando sto toccando OVUNQUE al di fuori del popover sarà respinto.
Beh, l'unico problema è che quando ho colpito il BarButton nuovo (quello che poped la popover) invece di licenziare il vecchio e presentando un nuovo come mi sarei aspettato, il risultato è ALTRO Popover in cima dell'esistente. Ciò significa che quando premo ancora e ancora ho un mucchio di popovers che può essere respinta soltanto con più clic su qualche altra parte.

So che posso usare qualche lattina di Singleton Design Pattern qui per risolvere questo problema, ma non c'è un

più facile e built-in modo per prendersi cura di esso?

Grazie!

È stato utile?

Soluzione

mi sono imbattuto nello stesso problema qualche mese fa, ho pensato che sarebbe respingere stesso quando ho sfruttato nulla , ma non è il caso.

Il modo in cui ho a che fare con questo è quello di mantenere un riferimento al vecchio popover, e respingerlo quando il UIBarButtonItem è sfruttato.

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

Si potrebbe utilizzare una proprietà per la gestione della memoria facile, o gestire da soli.

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