UIImagePicker не может выполнить полноэкранный переход на iOS 3.1.3 - PullRequest
0 голосов
/ 08 сентября 2011

Я изменяю свое приложение для iphone, чтобы оно было обратно совместимо с iOS 3.1.3.Я разрешаю пользователю загружать изображения из библиотеки фотографий.Я представляю средство выбора изображений со следующим кодом:

UIImagePickerController* content = [[UIImagePickerController alloc] init];
content.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
content.delegate = self;
[self presentModalViewController:content animated:YES];
[content release];

Это работает правильно на ios 4.0+.Однако на ios 3.1.3 средство выбора изображений никогда не появляется, и я получаю следующее предупреждение:

Can't perform full-screen transition. The fromViewController's view must be 
within a view that occupies the full screen.

В этом случае fromViewController является контроллером видимого представления в контроллере навигации.Контроллер навигации настраивается в appDelegate didFinishLaunchingWithOptions с использованием следующего сегмента кода:

MyViewController* root = [[MyViewController alloc] initWithNibName:nil bundle:nil];
UINavigationController *aNavigationController = [[UINavigationController alloc] initWithRootViewController:root];
aNavigationController.delegate = self;    
[window addSubview:aNavigationController.view];

Перед попыткой загрузить средство выбора изображений в контроллере навигации представлен другой контроллер представления.Следовательно, во время загрузки средства выбора изображения два контроллера представления находятся в стеке навигации.

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

Мне интересно, связана ли проблема с тем фактом, что modalPresentationStyle контроллера навигации не может быть установлен в iOS 3.1.3.Для iOS 3.2+ я установил стиль представления UIModalPresentationFullScreen.Я считаю, что это по умолчанию для предыдущих iOS.Тем не менее, я подозрительно просто потому, что предупреждение, которое я получаю, касается полноэкранного просмотра.

Может кто-нибудь предложить какие-либо другие предложения?Мне не удалось найти какую-либо документацию Apple, касающуюся изменений в UIImagePicker или UINavigationController с ios 3.x до 4.0.

Заранее спасибо!

1 Ответ

0 голосов
/ 08 сентября 2011

Что я обычно делаю, когда контроллер представления находится внутри контроллера навигации, это:

imagePicker = [[UIImagePickerController alloc]init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;

[self.navigationController presentModalViewController:imagePicker animated:YES];

Надеюсь, это работает для вас!

...