iOS - 容器视图控制器 Swift

iOS - Container View Controller Swift

我是 iOS 开发的新手。在其中一个应用程序屏幕上,我想使用具有 2 个段的分段控件 - 比如说 A 和 B。A 和 B 有不同的 UIView。 A 有 tableview,B 有 UIImageView 和 textLabels。我知道我需要使用容器视图控制器。但不确定如何。如果我没记错的话,一个 View Controller 只能有一个 Embedded Segue - 那么我如何获得 2 个 UIView。

我不知道 objective C,因此很难将 SO 上类似问题的答案翻译成 swift。也不想使用 view.hidden = false & true 因为我从记忆的角度来看它不好。

有人可以逐步解释需要做什么吗 - 如何使用 loadChildViewController、didMovetoParentController 等。情节提要的外观如何。 谢谢

与其使用容器视图,不如在 IB 中设置两个视图,然后根据分段控件值设置视图的隐藏 属性。

请参阅此问题以获得更深入的解释。 Question here

一个容器只能有一个嵌入转场。您必须创建 2 个容器,每个容器都有自己的 segue。或者您可以从代码中添加子控制器,只需创建 UIView,您希望在其中添加您的内容,添加子视图控制器并向其添加子控制器的视图。我创建了 sample project 来向您展示情节提要设置。

@IBOutlet weak var containerView: UIView!

...

addChildViewController(controller)

containerView.addSubview(controller.view)
controller.view.setTranslatesAutoresizingMaskIntoConstraints(false)
var constraints = NSLayoutConstraint.constraintsWithVisualFormat("H:|[view]|", options: nil, metrics: nil, views: ["view" : controller.view])
constraints += NSLayoutConstraint.constraintsWithVisualFormat("V:|[view]|", options: nil, metrics: nil, views: ["view" : controller.view])
NSLayoutConstraint.activateConstraints(constraints)

controller.didMoveToParentViewController(self)