Я делаю приложение для камеры, которое дает пользователю доступ к библиотеке фотографий. Они касаются кнопки, и всплывает UIImagePickerControllerSourceTypeSavedPhotosAlbum с использованием presentModalViewController. Когда они касаются фотографии, я хочу, чтобы представление смещало ImagePicker влево и появлялось новое представление. Дело в том, что я хочу, чтобы ImagePicker оставался включенным, поэтому, когда они возвращаются к нему, нет задержки . Это происходит во многих приложениях для камер, таких как NightCamera. Всякий раз, когда я использую [self.navigationController pushViewController:photoPreview];
, он перемещает представление в основное представление, а не в средство выбора. Когда я использую [picker.navigationController pushViewController:photoPreview];
, ничего не происходит, потому что navigationController средства выбора равен нулю. Кто-нибудь знает что делать?
Нажмите UIImagePickerController влево
Ответы (2)
Да, это возможно. Не существует такой вещи, как «модальный контроллер представления», любой контроллер представления может быть представлен модально.
Поскольку UIImagePickerController
уже является UINavigationController
, вы можете направлять представления непосредственно на него. Итак, вместо
[picker.navigationController pushViewController:some_view_controller];
просто сделать
[picker pushViewController:some_view_controller];
удаление .navigationController
.
person
George
schedule
03.11.2010
Попробуй это:
if (!picker.navigationController)
UINavigationController *navC = [[[UINavigationController alloc] initWithRootViewController:picker] autorelease];
[picker pushViewController:photoPreview];
person
Juan de la Torre
schedule
14.06.2012
Не совсем уверен, что должны делать первые две строки. Вы просто создаете локальную переменную с именем navC, которая нигде не используется. Вы должны получить предупреждение компилятора о неиспользуемой переменной. Нет ничего плохого в добавлении этих строк, но они ничего не делают.
- person George; 07.03.2013