UIImagePickerController non viene caricata in viewDidLoad per iPhone SDK
-
18-09-2019 - |
Domanda
Sto cercando di mostrare un'UIImagePickerController non appena uno dei miei carichi View Controller. Mi piacerebbe questo senza che l'utente debba premere un pulsante in modo da calpestato il metodo viewDidLoad come segue:
- (void)viewDidLoad {
[super viewDidLoad];
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.allowsImageEditing = YES;
imagePickerController.delegate = self;
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}
Questa compilato ed eseguito, ma quando il controller della vista viene caricato il selettore immagine non viene visualizzata. Questo codice funziona bene se io attribuisco ad un evento di un pulsante, per esempio. Tutte le idee?
Grazie.
Soluzione
Ho avuto lo stesso problema, ma risolto. Provare a utilizzare
-(void) awakeFromNib {
}
Si caricherà solo dopo che tutto carichi altro.
Altri suggerimenti
Prova a mettere il codice in
-(void)viewDidAppear
Che anche eseguito ogni volta la vista appare sullo schermo anche se (anche quando esso appare dopo aver eliminato l'UIImagePicker), quindi potrebbe essere necessario aggiungere un valore booleano per farlo solo accadere la prima volta che si vede, o quando si lo vogliono (cioè non dopo respingendo una vista modale).
Sembra che viewDidLoad è troppo presto per usare presentModalViewController: animato :. Mi piacerebbe sugget biforcarsi fuori un timer one-shot di chiamare il metodo dal prossimo ciclo di esecuzione di iterazione:
[NSTimer
scheduledTimerWithTimeInterval:0
target:self
selector:@selector(onLoadTimer:)
userInfo:nil
repeats:NO];
aggiungere il seguente metodo:
- (void)onLoadTimer:(id)unused
{
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}