2011-10-27 5 views
0

두 개의 UITextField와 버튼이있는 폼이 있습니다. 사용자는 두 필드에 값을 입력 한 다음 버튼을 클릭합니다. UIImagePickerController가 표시되므로 사진을 찍을 수 있습니다. 그림 미리보기에서 "사용"단추를 클릭하면 UIImagePickerController가 닫히지 만 두 UITextField에 입력 된 텍스트는 사라집니다. 이것은 IPhone (IPad가 아님)에서만 발생하며 카메라 롤에서 사진을 선택하는 대신 사용자가 카메라를 사용할 때만 발생합니다. 여기에 코드가 있습니다.UITextfields는 UIImagePickerController를 표시 한 후 비어 있습니다.

-(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이며 응용 프로그램은 4.3을 기본 sdk로, 4.2를 배포 대상으로 XCode 4에서 개발 중입니다. 어떤 도움을 주셔서 감사합니다.

답변

2

카메라가 사용 중일 때 메모리 경고가 표시되고 뷰가 언로드되고, 뷰가 다시로드 된 후 (이미지 선택기에서 돌아온 후) 뷰가 기본 상태에 있고 상자가 비어 있다고 의심됩니다.

텍스트 상자 텍스트 속성을 원하는 값으로 설정하면 상자에 값을 입력 할 때 값을 저장 한 다음 값이 있으면 viewDidLoad 검사에 저장해야합니다.

콘솔을 확인하면 메모리 경고 수준 1 (또는 2 일)이 가장 높습니다.

+0

나는 같은 것으로 의심됩니다. @ Bob : viewDidUnload에 중단 점을 설정하여이를 확인할 수 있습니다. 뷰 컨트롤러의 경우 메모리 경고가 있고보기가 언로드되면 호출됩니다. – progrmr

+0

Simon과 progrmr - 두 분 모두에게 감사드립니다. 그게 바로 일어난 일입니다. 나는 여전히 IOS 개발에 대해 상당히 새롭다. 그러나 내 질문은이 메모리 경고 (레벨 1)에 대해 염려해야 하는가 아니면이 카메라가 관련이 있으며 무시할 수 있는가? – Bob

+0

@Bob 이것은 완벽하게 정상입니다. 실제로 메모리 경고는 필요하지 않은 메모리를 해제 할 수있는 기회를 제공합니다. 이는 표준 메커니즘입니다. 카메라가 작동하는 데 필요한 메모리가 크며 응용 프로그램이 매우 가벼운 공간이 아니라면 경고 메시지가 나타납니다. 레벨 2 경고는 더욱 심각합니다. 메모리를 확보해야하는 사용자를 확보 한 경우 시스템이 앱을 튕기는 것이 마지막 작업입니다. 시스템이 레벨 1에서 충분한 메모리를 확보하지 못할 경우 경고를 무시하거나 필요하지 않은 사항을 릴리스하거나 다시로드 할 수 없습니다. 레벨 2를 얻게됩니다. –

관련 문제