3

私はUIImagePickerControllerを却下するあらゆるバリエーションを試しましたが、うまくいきませんでした。私は何を間違っていますか。

- (IBAction)choosePhoto
{
    self.picker = [[UIImagePickerController alloc] init];
    self.picker.delegate = self;
    self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:self.picker animated:YES];

}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)imagePicker
{
    NSLog(@"dismiss image picker");
    [self dismissModalViewControllerAnimated:NO];
    [[self.picker parentViewController] dismissModalViewControllerAnimated:NO];
    [self.presentedViewController dismissModalViewControllerAnimated:NO];
    [self.presentingViewController dismissModalViewControllerAnimated:NO];
     // And every other way i could think of
}

- (void)imagePickerController:(UIImagePickerController *)imagePicker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    .. same stuff here
}

親、祖父母、navigationController、およびルート コントローラーからピッカーを提示しようとしましたが、何も機能しません。私が何をしても、ImagePickerController を閉じることはできません。

ログステートメントは毎回呼び出されることに注意してください。

乾杯

4

4 に答える 4

9

この行を試してください。それはあなたのために働くかもしれません。

[self.picker dismissModalViewControllerAnimated:NO];

iOS 6以降ではこれを使用します

[self.picker dismissViewControllerAnimated:NO completion:nil];

また、このコードを使用して、ピッカー コントローラーを表示します

if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]){
    [self presentViewController:self.picker animated:YES completion:nil];
} else {
    //To target iOS 5.0
    [self presentModalViewController:self.picker animated:YES];
}
于 2013-05-10T05:58:24.250 に答える
6

Swift の場合、これを使用します。

func imagePickerControllerDidCancel(picker: UIImagePickerController!) {
    picker.dismissViewControllerAnimated(true, completion: nil)
}
于 2015-01-12T13:06:59.227 に答える