UIImagePicker не может выполнить полноэкранный переход на iOS 3.1.3
Я модифицирую приложение для 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 ответ
Что я обычно делаю, когда контроллер представления находится внутри контроллера навигации:
imagePicker = [[UIImagePickerController alloc]init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
[self.navigationController presentModalViewController:imagePicker animated:YES];
Надеюсь, это работает для вас!