Я пытаюсь воспроизвести подобный медиа-сборщик, который похож на тот, что на страницах. Внутри UIPopoverController
существует UISegmentedControl
, который выбирает разные типы носителей. Один из сегментированных контролов, который у меня есть, - это помеченные изображения. Я хочу иметь возможность выбрать этот сегмент и иметь представленный ниже вид ImagePicker.
Я рядом. У меня есть несколько вопросов. Представляя ВК, я получаю:
Я получаю следующее в отладчике:
UIStatusBarStyleBlackTranslucent is not available on this device.
Не уверен, откуда это исходит. Я пробовал с и без:
imagePicker.modalInPopover = YES;
imagePicker.modalPresentationStyle = UIModalPresentationCurrentContext;
Хотя я все еще не могу заставить его работать правильно. Представляет просто отлично. Я вижу UISegmentedControl
, я вижу свои другие медиа-страницы, я нажимаю на сегмент Image и вижу ImagePicker, в заголовке «Фотографии» есть кнопка «Отмена», от которой нужно избавиться, и отображаются два альбома, которые есть на устройстве ,
Если я коснусь в любом месте таблицы (в альбоме или нет), два альбома исчезнут. Кнопки NavBar и Cancel все еще там, хотя альбомов больше нет. Нажатие на альбом выделяет строку, но не показывает изображения в альбоме.
Другая странная часть моего кода заключается в том, что делегатом для средства выбора изображений является виртуальный канал, представляющий контроллер UIPopoverController. Не уверен, если это играет на этом. Когда я нажимаю кнопку «Отмена», я получаю:
-[PLUILibraryViewController performSelector:withObject:withObject:]: message sent to deallocated instance
Вот мой код для представления сборщика.
- (void) setupImagePicker {
IoScreenEditorViewController * ioScreenEditorViewController = (IoScreenEditorViewController *)[UIAppDelegate.ioMainViewController currentViewController];
ioScreenEditorViewController.elementSelectedFromList = [elementsForPage objectAtIndex:0];
// Show an image picker to allow the user to choose a new photo.
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = ioScreenEditorViewController;
imagePicker.allowsEditing = NO;
NSArray * ourMediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];
[imagePicker setMediaTypes: ourMediaTypes];
[ourMediaTypes release];
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
// imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
} else {
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
[imagePicker.view setFrame:CGRectMake(0,0, 340, 500)]; // just for testing
//imagePicker.modalInPopover = YES;
//imagePicker.modalPresentationStyle = UIModalPresentationCurrentContext;
[self.view addSubview:imagePicker.view];
[imagePicker release];
}