У меня есть контроллер просмотра страниц, который переходит между контроллерами представлений, используя обычные методы UIPageViewController. Внутри одного из представленных контроллеров зрения (скажем, текущий контроллер вида), добавить контроллер представления ребенка в подвид называется containerView
как так:Представление контроллера детского представления внутри текущей страницы UIPageController
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let child = storyboard.instantiateViewController(withIdentifier: "child")
self.addChildViewController(child)
child.view.frame = self.containerView.bounds
self.containerView.addSubview(child.view)
child.didMove(toParentViewController: self)
Контроллер вид представлен внутри containerView
, однако это только пол-интерактивный. Например, предположим, что контроллер дочернего представления имеет ползунок, который обновляет метку со значением ползунка. При перемещении ползунка слайдер будет визуально перемещаться внутри containerView
, но не будет обновлять этикетку (IBAction, подключенный к ползунку, не запускается). Это поведение работало правильно, когда контроллер представления был представлен нормально (полноэкранный режим с использованием обычного режима).
Любые идеи?
это очень странно ... так что в отладке метод делегата вашего слайдера-изменен не вызывается? –
на самом деле он срабатывает, однако метка не обновляется. Я поставил точку останова в слайдере IBAction и получил вызов, но текст ярлыка не изменяет 'label.text = String (slider.value)', как это происходит, когда контроллер представления представлен нормально. Я даже попытался изменить цвет фона 'self.view', и это работает правильно, просто чтобы увидеть, если это сработало. –
Вам нужно описать ситуацию в _much_ больше p подробно изложите, чтобы получить хороший ответ. В противном случае вы просто теряете репутацию, которую вы только что потратили на щедрость. Трудно сказать, в чем проблема. Однако обратите внимание, что связь между несколькими уровнями контроллера контроллера (просмотр в контроллере представления в контроллере родительского представления) - очень сложная проблема! У меня есть длинное обсуждение вариантов здесь, которые могут дать вам некоторые идеи: http://stackoverflow.com/a/33458977/341994 – matt