2010-11-20 9 views
0

Je suis nouveau au développement d'Iphone. Je travaille sur une application qui implique deux points de vue. J'ai un bouton de la caméra dans la vue qui ouvre l'appareil photo Iphone par défaut. Ceci est réalisé en ayant ce code dans le IBAction pour le bouton de la caméra dans ViewOneController:Comment changer de vue lorsque l'appareil photo Iphone revient?

UIImagePickerController *picker = 
[[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.allowsEditing = NO; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
[self presentModalViewController:picker animated:YES]; 
[picker release]; 

Le contrôleur de vue pour la première vue est aussi le UIImagePickerControllerDelegate pour la caméra. Lorsque l'image est cliqué et la vue de la caméra revient à la fonction imagePickerController: didFinishPickingWithMediaInfo où je fais ceci:

(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [picker dismissModalViewControllerAnimated:YES]; 
[self presentModalViewController:ViewTwoViewController animated:YES]; 
} 

Donc, fondamentalement, tout ce que je suis en train de réaliser est de viewone cliquez sur « prendre une photo » ---> Ouvrir la caméra -> une fois la caméra terminée, sautez pour en voir deux. Tout simmilar à ce qu'il est dans l'application Flickr. Cependant, après avoir pris la photo de la caméra, mon application revient en voir une et la vue n'est pas affichée. Qu'est-ce que j'oublie ici?

Aussi, d'un point de vue conceptuel, je suppose que IOS conserve une pile de vues pour n'importe quelle application. Lorsque presentModalViewController est appelé, la vue est affichée et elle est ajoutée à la pile et lorsque la fonction dismissModalViewController est appelée, la vue est supprimée de la pile et la vue parente est show. Est-ce correct?

Merci.

Répondre

0

Vous devez probablement mettre l'appel à [self presentModalViewController: ViewTwoViewController animé: YES] dans viewWillAppear qui sera appelé après la suppression de la vue du sélecteur. Vous devez probablement également entourer l'appel avec une vérification pour ne présenter que viewTwo, le cas échéant.

+0

J'ai essayé le code dans la vue apparaîtra. Cela ne fonctionne toujours pas. –

+0

J'ai donc trouvé la réponse d'un autre forum. Apparemment, Iphone ne vous permet pas de basculer deux vues de manière animée. J'ai donc changé le [picker dismissModalViewControllerAnimated: YES]; ligne vers [picker dismissModalViewControllerAnimated: NO]; dans le code original et cela a fonctionné. Merci. –

Questions connexes