UIImagePickerController no se carga en viewDidLoad para iPhone SDK
-
18-09-2019 - |
Pregunta
Estoy tratando de mostrar una UIImagePickerController tan pronto como uno de mis cargas controlador de vista. Me gustaría esto sin que el usuario tenga que pulsar un botón, así que hizo caso omiso del método viewDidLoad de la siguiente manera:
- (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];
}
Esto compila y se ejecuta, sin embargo, cuando el controlador de vista se carga el selector de imagen no se muestra. Este código funciona bien si me ato a un evento de un botón, por ejemplo. ¿Alguna idea?
Gracias.
Solución
Yo tenía el mismo problema, pero lo resolvió. Trate de usar
-(void) awakeFromNib {
}
Se carga justo después de todo carga demás.
Otros consejos
Trate de poner el código en
-(void)viewDidAppear
Que incluso se ejecuta cada vez que la vista aparece en la pantalla, aunque (incluyendo cuando aparece después de descartar la UIImagePicker), así que puede que tenga que añadir un valor BOOL para que sea sólo ocurren la primera vez que se muestra, o cuando quererlo (es decir, no después de despedir una vista modal).
Parece que viewDidLoad es demasiado pronto para usar presentModalViewController: animado :. Me sugget al tenedor de un temporizador de una sola vez para llamar al método a partir del próximo bucle de ejecución de iteración:
[NSTimer
scheduledTimerWithTimeInterval:0
target:self
selector:@selector(onLoadTimer:)
userInfo:nil
repeats:NO];
añadir el siguiente método:
- (void)onLoadTimer:(id)unused
{
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}