Пустое поле UITextfields после отображения UIImagePickerController - PullRequest
0 голосов
/ 27 октября 2011

У меня есть форма с двумя UITextFields и кнопкой. Пользователь вводит значения в два поля и затем нажимает кнопку. Это отображает UIImagePickerController, поэтому он / она может сделать снимок. После нажатия кнопки «Использовать» в окне предварительного просмотра изображения UIImagePickerController отклоняется, но любой текст, который был введен в два поля UITextFields, исчезает. Это происходит только на 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 Ответ

2 голосов
/ 27 октября 2011

Я подозреваю, что вы получаете предупреждение о памяти (обычное явление при использовании камеры), и представление выгружается, когда представление перезагружается (после возвращения из средства выбора изображений) представление находится в своем состоянии по умолчанию, поля пустые.

Вам нужно сохранять значения полей, когда они вводятся (в переменных), затем в viewDidLoad проверить, есть ли у вас значения, если вы устанавливаете текстовое свойство текстовых полей на нужные значения.

Проверьте консоль, скорее всего, у вас будет уровень памяти Предупреждение 1 (или, возможно, 2)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...