2015-10-13 6 views
0

У меня есть UIContainerView внутри ViewController, который будет представлен как popoverViewController. Внутри контейнераView встроен UINavigationViewController. есть tableViewController, встроенный в navigationView, который выполняет селекцию по ячейкам.SWIFT UINavigationController, встроенный в контейнерView

как так enter image description here

, когда пользователь нажимает на моих сессиях от контроллера Настройки табличного метода делегата на (Main Profile View Controller) дозвонился обновить preferredContentSize в popoverViewController. , и когда пользовательский backButton (<) в UITableviewcontroller, popoverView изменит размер снова. мне удалось заставить все это работать с помощью делегирования , но при этом он говорит, что он работает только один раз ... метод делегата из диспетчера представлений таблицы настроек больше не вызван. Я думаю, что после того, как контроллер представления настроек сам выполнит segue, делегат на главный контроллер представления профиля потерян и не будет вызван снова.

это, как он выглядит во время выполнения

enter image description here

Теперь изменений размера по щелчку моих сессий и возвращается к первоначальному размеру после пользователь нажимает на BackButton

enter image description here

но после этого метод делегата не вызывается и вид не изменяется таким образом

enter image description here

Я использую SWIFT 2.0 и Xcode 7.01, любое решение о том, как сохранить делегатский метод, будет действительно оценено.

ответ

0

Хорошо, поэтому я решил это, не используя метод делегатов. Когда контроллер представления, который должен изменить размер экрана представлен я использовать

func viewWillAppear(animated: Bool) { 
super.viewWillAppear(true) 
presentingViewController?.preferedContentSize.width = 500 
} 

и я обратить его в viewWillDisappear

я надеюсь, что это помогает

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