UIImagePickerController ne se charge pas dans viewDidLoad pour iPhone SDK
-
18-09-2019 - |
Question
Je suis en train de montrer un UIImagePickerController dès que l'un de mes charges vue du contrôleur. Je voudrais cela sans que l'utilisateur ait à appuyer sur un bouton pour que je l'emporterait sur la méthode viewDidLoad comme suit:
- (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];
}
compile et fonctionne, mais lorsque le contrôleur de vue est chargé le sélecteur d'image ne s'affiche pas. Ce code fonctionne très bien si je le joindre à un événement d'un bouton par exemple. Toutes les idées?
Merci.
La solution
J'ai eu le même problème, mais résolu. Essayez d'utiliser
-(void) awakeFromNib {
}
Il se charge juste après tout charge d'autre.
Autres conseils
Essayez de mettre le code
-(void)viewDidAppear
Cela va même à chaque fois que la vue apparaît sur l'écran si (y compris quand il apparaît après que vous rejetez la UIImagePicker), alors vous pourriez avoir à ajouter une valeur booléenne pour le faire ne se produira la première fois qu'il montre, ou lorsque vous voulez (c.-à-pas après avoir rejeté une vue modale).
Il semble que viewDidLoad est trop tôt pour utiliser presentModalViewController: animé :. Je Sugget à bifurquer une minuterie one-shot pour appeler la méthode de la boucle suivante d'exécution itération:
[NSTimer
scheduledTimerWithTimeInterval:0
target:self
selector:@selector(onLoadTimer:)
userInfo:nil
repeats:NO];
ajouter la méthode suivante:
- (void)onLoadTimer:(id)unused
{
[self presentModalViewController:imagePickerController animated:YES];
[imagePickerController release];
}