gpt4 book ai didi

ios - 关闭 UIImagePickerController 也会使父级消失

转载 作者:可可西里 更新时间:2023-11-01 05:01:16 26 4
gpt4 key购买 nike

我正在使用以下代码来显示 UIImagePickerController 以拍照:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setDelegate:self];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[self presentViewController:imagePicker animated:YES completion:nil];

注意:self 是嵌入在容器 View 中的 UIViewController,容器 View 本身参与 UINavigationController

我还实现了以下方法:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[self.imgProfile setImage:image];
[self dismissViewControllerAnimated:YES completion:nil];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:nil];
}

当我选择拍摄的照片或取消它时,UIImagePickerController 消失了,而且主视图也消失了!逐渐变黑。

我正在为 iOS7 编写仅适用于 iPad 的应用程序,以防与它有任何关系。

这是一个显示问题的视频。请原谅模糊,但它处于 NDA 之下。

http://www.youtube.com/watch?v=sIaPyRlIqyE

最佳答案

我在 iOS7 下遇到了同样的问题,我找到的唯一解决方案是按如下方式进行;

当从您的 VC 中呈现选择器时;

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];

[self addChildViewController:picker] ;

[picker didMoveToParentViewController:self] ;

[self.view addSubview:picker.view] ;

然后,在处理选择器委托(delegate)时 - 使用 ; 而不是 dismissModal

[picker.view removeFromSuperview] ;
[picker removeFromParentViewController] ;

您失去的只是动画呈现/解散 - 除此之外,一切都应该很好。

关于ios - 关闭 UIImagePickerController 也会使父级消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19149811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com