модальный диалог iphone как родной "сделай снимок, выбери существующий" - PullRequest
6 голосов
/ 21 апреля 2011

Как создать модальное диалоговое окно с настраиваемым выбором кнопок, например «сделать снимок или видео» | «выбрать существующий» диалог на iPhone? Эти кнопки не являются обычными кнопками UIButton, и я уверен, что они не созданы вручную для каждого приложения.

1 Ответ

15 голосов
/ 06 июня 2011

Похоже, вы хотите использовать комбинацию UIActionSheet и UIImagePickerController. Этот код показывает всплывающее окно, которое позволяет пользователю выбрать, чтобы сделать фотографию или выбрать существующую, тогда UIImagePickerController в значительной степени делает все остальное:

- (IBAction)handleUploadPhotoTouch:(id)sender {
    mediaPicker = [[UIImagePickerController alloc] init];
    [mediaPicker setDelegate:self];
    mediaPicker.allowsEditing = YES;

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil
                                                                 delegate:self
                                                        cancelButtonTitle:@"Cancel"
                                                   destructiveButtonTitle:nil
                                                        otherButtonTitles:@"Take photo", @"Choose Existing", nil];
        [actionSheet showInView:self.view];
    } else {
        mediaPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;     
        [self presentModalViewController:mediaPicker animated:YES];
    }
}


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
        mediaPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    } else if (buttonIndex == 1) {
        mediaPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;     
    }

    [self presentModalViewController:mediaPicker animated:YES];
    [actionSheet release];
}

ПРИМЕЧАНИЕ. Предполагается, что у вас есть переменная-член "mediaPicker", которая содержит ссылку на UIImagePickerController

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