2011-10-05 3 views
0

저는이 응용 프로그램을 iPad에서 개발하고 있습니다.
사용자가 iPad의 사진 갤러리에서 NSDocumentDirectory를 통해 응용 프로그램에 이미지를 저장할 수있는 기능이 있습니다.XCode - 사용자가 값을 입력 할 수있는 메시지 상자를 표시하는 방법?

첫 화면에는 찾아보기 버튼, 확인 버튼 및 이미지 뷰가 있습니다.
찾아보기 버튼은 iPad의 사진 갤러리에서 사진을 표시하고 사용자가 사진을 선택할 수있게합니다. 확인 단추는 선택한 사진을 NSDocumentDirectory에 저장합니다.

찾아보기 버튼 :

- (IBAction) browsePhoto:(id)sender 
{ 
    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; 
    imagePickerController.delegate = self; 
    imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:imagePickerController]; 
    [popover setPopoverContentSize:CGSizeMake(320,320)]; 
    [popover presentPopoverFromRect:CGRectMake(200,200,-100,-100) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
    self.popoverController = popover; 
    [imagePickerController release]; 
} 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo 
{ 
    [self.popoverController dismissPopoverAnimated:YES]; 
    imageView.image = selectedImage; 
} 

확인 버튼 :

- (IBAction) confirmPhoto:(id)sender 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [paths objectAtIndex:0]; 
    NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:@"SavedImage.png"]; 
    UIImage *image = imageView.image; 
    NSData *imageData = UIImagePNGRepresentation(image); 
    [imageData writeToFile:savedImagePath atomically:NO]; 
} 

내가 ONE 이미지를 사용해 이러한 코드를 사용하므로 완벽하게 잘 작동 될 것입니다. 그러나 얼마 후, 나는 사용자가 하나 이상의 사진을 저장할 수 있도록해야한다는 것을 알았습니다. 내 코드는 그렇게 할 수 없습니다. 왜냐하면 저는 어떻게 든 '하드 코드'파일 이름이 SavedImage.png이고 새 이미지가 이전 이미지를 대체하기 때문입니다.

이 문제를 해결할 방법을 생각해 보았습니다.이 방법은 이미지를 응용 프로그램에 저장할 때 이미지의 이름을 지정하는 카운터를 사용하는 것입니다. 그런 뭔가 :

NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.png", counter]]; 

는하지만이 내 이미지에 대한 좋은 이름 지정 규칙되지 않습니다. 적절한 이름으로 저장하고 싶습니다. 내가 생각한 것은 사용자가 확인 버튼을 탭하면 응용 프로그램이 메시지 상자를 표시하여 사용자가 선택한 이미지의 이름을 입력 할 수있게합니다. 이미지는 사용자가 입력 한 이름으로 저장됩니다.

답변

0

UITextField가있는 작은 ViewController를 만들고 OK 및 ABORT를위한 2 개의 버튼을 만들고 UIPopOverController와 함께 표시하십시오. 합법적 인 파일 이름을 확인하고 이미 존재하는 파일이 있는지 (그리고 덮어 쓰기 가능) 확인해야한다는 것을 알고 있어야합니다.

+0

제안 해 주셔서 감사합니다. 하지만 파일 이름이 이미 NSDocumentDirectory에 있는지 확인하기 위해 일부 코드를 공유 하시겠습니까? – Lloydworth

+0

'fileExistsAtPath'와 같은 메서드를 사용하여 NSFileManager 클래스 참조를 확인하십시오. –

관련 문제