2016-05-04 3 views
0

У меня есть UIStackView, и я динамически добавляю UIViewControllers, вот мой код;Несколько ViewControllers, содержащихся в UIStackView

[self addChildViewController:driverForm]; 
[self addChildViewController:marketingView]; 

[self.stackView insertArrangedSubview:driverForm.view atIndex:0]; 
[self.stackView insertArrangedSubview:marketingView.view atIndex:1]; 

[driverForm didMoveToParentViewController:self]; 
[marketingView didMoveToParentViewController:self]; 

После прочтения документов, в которых говорится, что я должен позвонить didMoveToParentViewController.

Проблема, с которой я столкнулся, действия на финале UIViewController не вызываются, но первый ViewController делает. Если я поменяю их, первый будет работать, а последний - нет.

+0

Просто обновление к этому, я удалил UIStackView и сделать такую ​​же функциональность, но только при добавлении непосредственно в UIScrollView, и это сработало. –

ответ

-1

UIStackView предназначен для организации нескольких подзонов в одном классе UIViewController. как вы можете использовать его для разных UIViewControllers?

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/#//apple_ref/doc/uid/TP40015256-CH1-SW31

+0

ChildViewControllers? –

+0

UIViewcontroller управляет UIView внутри него в сотрудничестве с моделью данных (методы свойств и т. Д.), Следовательно, это имя «контроллер». Парадигма MVC? – Harris

+0

Просмотр контейнеров-контроллеров не волнует, где и как расположены их виды детей. Нет ничего плохого в том, чтобы воспитывать несколько дочерних элементов внутри одного контроллера представления и использовать представление стека для упорядочивания их представлений. – LucasTizma