UIPopoverController & UIImagePickerControl: “Popovers non possono essere presentati da una vista che non ha una finestra”

StackOverflow https://stackoverflow.com/questions/4006724

Domanda

Sto cercando di visualizzare un UIImagePickerControl nel mio iPad. In un primo momento, il debugger mi ha detto che avevo bisogno di metterlo in un popover quando si fa su un iPad. Così ho scritto il seguente codice:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
popover = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
[popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0) 
                         inView:self.view
       permittedArrowDirections:UIPopoverArrowDirectionAny 
                       animated:YES];

Tuttavia, ora ottengo il seguente errore: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Popovers cannot be presented from a view which does not have a window.'

Qualche suggerimento su quello che devo fare? So che self.view dovrebbe hanno una finestra, ma a quanto pare ... non lo fa?

È stato utile?

Soluzione

Questo può accadere se si sta eseguito quel po 'di codice prima della vista viene caricato, come self.view è ancora pari a zero e quindi lo è anche self.view.window.

E 'possibile che si sta facendo questo in un metodo init o qualche altro posto prima che la vista viene caricato (prima -viewDidLoad: si chiama)?

Altri suggerimenti

Questo errore mi aveva sconcertato, ma si è scoperto che era perché la barButtonItem ero di passaggio a presentPopoverFromBarButtonItem era un elemento UIBarButtonSystemItemFlexibleSpace formica un pulsante di vero e proprio. Il mio errore dell'utente, ma solo così la gente che questo può als

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