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.

Était-ce utile?

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];
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top