2010-08-13 4 views
0

Disons que j'ai un contrôleur de classe A qui implémente UIImagePickerControllerDelegate.Iphone - DismissModalViewControllerAnimated dans imagePickerController

au sein de A, je mets en œuvre le délégué comme ceci:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Qui se rejeté ici? l'imagePickerController ou A? veuillez expliquer pourquoi ...

Répondre

0

L'appel presentModalViewController:animated: sur un UIViewController affichera un contrôleur de vue modalement. Par analogie, dismissModalViewControllerAnimated: rejette le contrôleur de vue modale. Dans ce cas, le contrôleur du sélecteur d'images serait ignoré (en supposant que le contrôleur du sélecteur d'image est la vue modale de l'objet qui est son délégué, ce qui est probablement le cas).

+0

Et comment voulez-vous rejeter le point de vue modal dans le cas où l'objet affiché la vue modale et le délégué ne sont pas le même ? pouvez-vous alors utiliser à la place "[picker dismissModalViewControllerAnimated]" au lieu de [self dismissModalViewControllerAnimated] ?? – Idan

+0

Pas exactement. '[picker dismissModalViewControllerAnimated:]' signifie que vous dites à 'UIImagePickerController' de rejeter le contrôleur de vue modale ITS. Ce que vous feriez c'est '[[picker parentViewController] dismissModalViewControllerAnimated:]'. –

+0

Oui, cependant, selon la réponse ci-dessous, le résultat est le même. À moins bien sûr que la vue modale ait ouvert une autre vue modale, dans ce cas, je suppose que seule la plus interne sera fermée, ce qui n'est pas mon intention. Donc je suppose que l'appel spécifique du parent est la meilleure option. – Idan

0

Le UIImagePickerController va se dismissed.Here est the documentation

Le contrôleur de vue parent est responsable de rejeter le contrôleur modal de vue, il a présenté à l'aide de la presentModalViewController: Méthode : animation. Si vous appelez cette méthode sur le contrôleur de vue modale lui-même, cependant, le contrôleur de vue modale transmet automatiquement le message à son contrôleur de vue parent.

0

vous essayez ce qui fonctionne pour moi

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ 

[picker dismissModalViewControllerAnimated:YES]; 
} 

cheeers ..

Questions connexes