2016-05-04 39 views
0

我有一个UIStackView,我动态地添加了UIViewControllers包含,这里是我的代码;UIStackView中包含多个ViewControllers

[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通过与数据模型(属性方法等)协作控制其内部的UIViews,因此名称为'Controller'。 MVC范例? – Harris

+0

视图控制器容器不关心他们的孩子观看的位置或方式。在单个视图控制器内部管理多个孩子并使用堆栈视图来排列视图没有任何问题。 – LucasTizma