2015-11-04 1 views
1

У меня возникли проблемы с использованием UIImagePickerController вместе с SWRevealViewController.UINavigationController в frontViewController SWRevealViewController возвращается к корневому VC при увольнении представленного VC?

В моем SWRevealViewController мой frontViewController является навигационным контроллером. В этом контроллере навигации у меня есть 2 VC (назовите их VC1 и VC2) в стеке навигации. Из верхнего VC (VC2) я показываю UIImagePickerController с использованием presentViewController:animated:completion:, причем сам VC2 является делегатом. Когда пользователь выбрал изображение, вызывается метод делегата imagePickerController:didFinishPickingMediaWithInfo:, я делаю материал с выбранным изображением, а затем я вызываю dismissViewController:animated:, чтобы отклонить выборщик изображений. Однако вместо того, чтобы просто вернуться в VC2, приложение полностью возвращается к VC1 (т. Е. Контроллеру корневого представления контроллера навигации).

После некоторого тестирования кажется, что проблема не связана с использованием UIImagePickerController, но с представлением любого VC с использованием presentViewController:animated:completion: из передней части VC. Я экспериментировал, представляя только фиктивный VC вместо контроллера выбора изображения, и та же проблема возникает - когда представленный VC отклоняется, контроллер nav возвращается к корневому VC вместо того, чтобы оставаться на представляющем VC.

Мне нужно использовать UIImagePickerController в приложении - как я могу обойти проблему выше?

  • Я не могу нажать UIImagePickerController на навигационном контроллере
  • Я не хотел бы, чтобы воссоздать функциональность UIImagePickerController

оцененная помощь!

ответ

0

Aargh, глупость ...

Я подклассы SWRevealViewController, и поставил код, который загружает и устанавливает передний контроллер представления в SWRevealViewController-х viewWillAppear, поэтому каждый раз, когда сборщик изображения покидает и SWRevealViewController вновь появляется , он повторно устанавливает свой контроллер фронтального вида. Постановка кода в viewDidLoad решила проблему. :/

Смежные вопросы