UIImagePickerController在被解雇后重新加载视图?

时间:2010-04-21 12:33:59

标签: iphone objective-c uiimagepickercontroller

我创建了选择器:

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

我处理didFinishPickingMediaWithInfo:

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissModalViewControllerAnimated:YES];
[picker release];}

但是这会调用自己的viewDidLoad。这不正常吗?怎么了?

3 个答案:

答案 0 :(得分:3)

您的应用可能收到内存警告,导致屏幕上未显示的所有视图控制器卸载其视图。当你在图像选择器中时这是很正常的,因为相机需要大量的内存。当您关闭图像选择器时,视图控制器会重新加载其视图。

由于这是完全正常的行为,您的应用必须正确处理这种情况。

答案 1 :(得分:0)

我有一个类似的问题,我在长按手势时显示弹出窗口。看起来似乎在选择图像后模态没有被解雇。但是,长按手势事件会被多次调用,因此每个事件都会显示一个新的弹出窗口。在我的手势处理程序中,我做了类似这样的修复:

if (![imagePickerPopoverController isPopoverVisible]){
   //show pop-up etc
}

答案 2 :(得分:0)

我遇到了某种问题,我试图将演示文稿设置为“全屏幕”并且无需重新加载即可显示