我有一个UIStackView
,我正在动态添加包含的UIViewControllers
,这是我的代码;
[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 会调用。如果我交换这些回合,第一个有效,最后一个无效。
最佳答案
只需像这样将 ViewController 的 View 添加到 UIStackView 中:
yourStackView.addArrangedSubview(yourViewController.view)
此外,您不必担心 View 为 nil,因为它总是返回 UIView!
请注意,顺序是相反的,所以最后一个出现在最前面。为了解决这个问题,假设您有一个 View Controller 数组,您可以使用 stride
反向遍历您的数组并将 View Controller 添加到您的堆栈。
关于ios - UIStackView 中包含多个 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37023023/