显示UIImagePickerController后,UITextfields为空白

时间:2011-10-27 15:46:58

标签: iphone objective-c ios xcode4

我有一个带有两个UITextFields和一个按钮的表单。用户在两个字段中输入值,然后单击按钮。这将显示UIImagePickerController,以便他/她可以拍照。单击图片预览上的“使用”按钮后,UIImagePickerController将被解除,但是在两个UITextField中输入的任何文本都将消失。这仅发生在iPhone(而不是IPad)上,并且仅在用户使用相机时发生,而不是从相机胶卷中选择图片。这是代码。

-(IBAction)btnTakePic {
    if([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.mediaTypes = [NSArray arrayWithObjects: (NSString *) kUTTypeImage, nil];
    imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    imagePicker.allowsEditing = NO;
    [self presentModalViewController: imagePicker animated:YES];
    [imagePicker release];
}
else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage, nil];
    imagePicker.allowsEditing = NO;
    [self presentModalViewController:imagePicker animated:YES];
    [imagePicker release];
}
}

我已经逐步完成了调试器,并且在进入选择器DidFinishPickingWithMediaInfo时,文本字段已经是空白的,因此问题似乎没有出现在那里。 IPad运行4.3.3,IPhone是4.2.1,应用程序正在XCode 4中开发,其中4.3作为基本sdk,4.2作为部署目标。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

我怀疑你得到一个内存警告(在使用相机时很常见)并且视图正在卸载,当视图重新加载时(从图像选择器返回后)视图处于默认状态,框为空。

您需要在输入框时存储框的值(在变量中),然后在viewDidLoad中检查是否有值,如果您将文本字段text属性设置为所需的值。

检查控制台,你很可能会有内存警告级别1(或者可能是2)