MMDrawerController: использование одного и того же экземпляра leftViewController для двух отдельных центральных контроллеров представления
Как указано в заголовке, я использую MMDrawerController. Для простоты у меня есть 3 ViewControllers, A, B и C.
A является начальным ViewController, и он содержит боковой ViewController, который является C.
От A я могу перейти к B. B также содержит боковой ViewController, который является C.
Я решил, что для A и B не стоит создавать отдельные экземпляры C в качестве отдельных ViewControllers, поэтому я решил использовать тот же экземпляр C, что и для своих боковых ViewControllers.
Когда я запускаю приложение, все отлично. Я перехожу к B, и я вижу тот же экземпляр C, что и боковой ViewController. Проблема в том, что когда я увольняю B через self.dismissViewControllerAnimated(true, completion: nil)
чтобы вернуться к A, я больше не вижу C как боковой ViewController. Боковой ViewController полностью черный.
Несмотря на то, что я уволил B, я знаю, что не выпустил C из памяти. У меня все еще есть экземпляр, я все еще могу вызывать вещи в нем, и MMDrawerController, который инкапсулирует A, все еще думает, что C - его сторона ViewController.
Почему это происходит? Как я могу справиться с этим?
Нужна ли мне государственная реставрация для этого?
1 ответ
Я сделал это несколько раз, но по-другому... Я использую C в качестве меню и 'D' в качестве UINavigatorController
с А как rootviewController
для центрального экрана. Таким образом, вы можете нажать / поп с A на B без изменений C.
Надеюсь, поможет