Domanda

-(void)showsearch:(id)sender
{
    SearchViewController *searchview =[[SearchViewController alloc] initWithNibName:@"SearchViewController" bundle:nil];

    settingpopoverController = [[[UIPopoverController alloc] 
                                    initWithContentViewController:searchview] autorelease];               
    [searchview release];
    [settingpopoverController presentPopoverFromBarButtonItem:sender 
                                    permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];


}

Quando faccio clic sul pulsante, l'app si arresta in modo anomalo e ho ottenuto [UIPopoverController dealloc] reached while popover is still visible. Messaggio.

È stato utile?

Soluzione

Altri suggerimenti

Ci sono alcune belle discussioni su questo argomento qui:

Modello di conservazione/rilascio per UIPopoverController, UIActionSheet e controller di visualizzazione modale?

UIPopoverController e gestione della memoria

Il succo è che devi:

  • assegna il tuo popover rilasciato automaticamente a una proprietà di conservazione
  • imposta la proprietà su nil nel dealloc della tua vista
  • oltre a impostarlo su zero nel popoverControllerDidDismissPopover.

problema che è sta impostando

settingpopoverController =

quando si intende fare

self.settingpopoverController =

per i quali l'autorelease sarebbe corretto. La seconda utilizza i accesso alle proprietà, il primo utilizza solo l'iVar.

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