我有一个带有两个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作为部署目标。任何帮助表示赞赏。
答案 0 :(得分:2)
我怀疑你得到一个内存警告(在使用相机时很常见)并且视图正在卸载,当视图重新加载时(从图像选择器返回后)视图处于默认状态,框为空。
您需要在输入框时存储框的值(在变量中),然后在viewDidLoad中检查是否有值,如果您将文本字段text属性设置为所需的值。
检查控制台,你很可能会有内存警告级别1(或者可能是2)