Iphone 显示UIImagePickerController后UITextfields为空
我有一个带有两个UITextField和一个按钮的表单。用户在这两个字段中输入值,然后单击按钮。这将显示UIImagePickerController,以便他/她可以拍照。单击图片预览上的“使用”按钮后,UIImagePickerController将被解除,但在两个UITextField中输入的任何文本都将消失。这只发生在IPhone(而不是IPad)上,并且只发生在用户使用相机而不是从相机卷中选择图片时。这是代码Iphone 显示UIImagePickerController后UITextfields为空,iphone,objective-c,ios,xcode4,Iphone,Objective C,Ios,Xcode4,我有一个带有两个UITextField和一个按钮的表单。用户在这两个字段中输入值,然后单击按钮。这将显示UIImagePickerController,以便他/她可以拍照。单击图片预览上的“使用”按钮后,UIImagePickerController将被解除,但在两个UITextField中输入的任何文本都将消失。这只发生在IPhone(而不是IPad)上,并且只发生在用户使用相机而不是从相机卷中选择图片时。这是代码 -(IBAction)btnTakePic { if([UIImage
-(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];
}
}
我已经通过了调试器,在进入picker DidFinishPickingWithMediaInfo时,文本字段已经为空,因此问题似乎没有出现在那里。IPad运行的是4.3.3,IPhone运行的是4.2.1,该应用程序正在XCode 4中开发,以4.3作为基本sdk,以4.2作为部署目标。非常感谢您的帮助。我怀疑您收到了内存警告(在使用相机时很常见),并且视图正在卸载,当视图重新加载(从图像选择器返回后)时,视图处于默认状态,框为空 输入框的值时(在变量中),需要存储框的值,然后在viewDidLoad中检查是否有值,如果确实将文本字段文本属性设置为所需的值
检查控制台,您很可能会出现内存警告级别1(或2)我怀疑同样的情况@Bob:您可以通过在viewDidUnload中设置断点来验证这一点:对于视图控制器,如果存在内存警告并且视图已卸载,则将调用该断点。Simon和progrmr-感谢你们两位。这正是发生的事情。我对IOS开发还是相当陌生的。但我的问题是,我是否需要关注这个内存警告(它是1级的),还是这只是与相机相关的东西,我可以忽略它?@Bob这是完全正常的,事实上内存警告是为了让你有机会释放任何不需要的内存,这是标准机制。相机运行所需的内存很大,除非您的应用程序占用的内存非常小,否则您将收到警告。2级警告更为严重,如果你得到了真正需要释放内存的警告,这是系统放弃应用程序之前的最后一次努力。永远不要忽略警告,释放你不需要的东西,或者可以重新加载,如果系统在级别1中没有回收足够的内存,你将获得级别2。