UIImagePickerController não carregando no viewDidLoad para o iPhone SDK
-
18-09-2019 - |
Pergunta
Eu estou tentando mostrar uma UIImagePickerController assim que uma das minhas cargas controlador de vista. Eu gostaria de isso sem que o usuário precise pressionar um botão para que eu cancelou o método viewDidLoad como 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];
}
Isso compila e corre, no entanto, quando o controlador de vista é carregado o selecionador de imagem não é exibida. Este código fina funciona se eu anexá-lo a um evento de um botão, por exemplo. Alguma idéia?
Graças.
Solução
Eu tive o mesmo problema, mas resolveu. Tente usar
-(void) awakeFromNib {
}
Ele irá carregar apenas depois de tudo cargas outra pessoa.
Outras dicas
Tente colocar o código no
-(void)viewDidAppear
Isso mesmo é executado a cada vez que a visão é exibida na tela embora (incluindo quando ele aparece depois de descartar a UIImagePicker), assim você pode ter que adicionar um valor BOOL para torná-lo só acontecem pela primeira vez ele mostra, ou quando você quer (ou seja, não depois de dispensar uma visão modal).
Parece que viewDidLoad é muito cedo para uso presentModalViewController: animado :. Eu sugget se bifurcar fora um temporizador one-shot para chamar o método a partir da próxima iteração do loop de execução:
[NSTimer
scheduledTimerWithTimeInterval:0
target:self
selector:@selector(onLoadTimer:)
userInfo:nil
repeats:NO];
adicione o seguinte método:
- (void)onLoadTimer:(id)unused
{
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}