Die Ansicht der Fotobibliothek bleibt auf dem Bildschirm, nachdem Sie ein Bild mit UIImagePickerControll ausgewählt haben

StackOverflow https://stackoverflow.com/questions/676039

Frage

Nachdem ich ein Bild über die UIImagePickerController -Schnittstelle aus der Fotobibliothek ausgewählt habe, bleibt die Fotobibliothekansicht angezeigt, obwohl ich angerufen habe EntlassmodelViewControlleranimated in ImagePickerController: didfinishpickingImage: EditingInfo.

Hat jemand das gesehen? Dies sind die drei relevanten Methoden, die ich verwende:

- (IBAction)choosePictureFromLibrary:(id)sender {
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
        UIImagePickerController* picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsImageEditing = YES;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:picker animated:YES];
        [picker release];
    }
    else {
        UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Error accessing Photo Library" message:@"This device does not support a Photo Library." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];
        [alert release];
    }
}


- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo {   
    UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Picture picked!" message:@"You picked a picture!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];

    [picker dismissModalViewControllerAnimated:YES];
}


- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker {   
    [picker dismissModalViewControllerAnimated:YES];
}

Ich hätte gedacht, dass das Aufrufen von ImagePickerController: didfinishpickingImage: EditingInfo die Ansicht der Fotobibliothek vollständig abtun, aber es scheint nicht zu sein. Muss ich noch etwas tun, um es verschwinden zu lassen?

War es hilfreich?

Lösung

Sie müssen auf den ViewController des Pickers zugreifen, nicht auf den Auswahler selbst. Probieren Sie stattdessen diese Zeile aus.

[[picker parentViewController] dismissModalViewControllerAnimated:YES];

Andere Tipps

Sie können einfach anrufen

[self dismissModalViewControllerAnimated:YES];

So entlasten Sie einen modalen Ansichts -Controller über der aktuellen Ansicht.

Dies ist sinnvoll, da Sie den View Controller durch Anrufe präsentieren:

[self presentModalViewController:picker animated:YES];

Nur ein Update auf die Antworten darauf

 [self dismissModalViewControllerAnimated:YES];

wurde veraltet in iOS 6.0 Sie müssen also jetzt verwenden.

 [self dismissViewControllerAnimated:YES completion:nil];

Keine große Veränderung, aber für alle, die sich diese Frage ansehen und iOS 6.0 verwenden, benötigen sie eine aktualisierte Antwort.

 [self presentModalViewController:filePicker animated:YES];

wurde auch zugunsten von veraltet

 [self presentViewController:filePicker animated:YES completion:nil];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top