【问题标题】:Embed view controller inside container view based on selection from tableview根据从 tableview 中的选择将视图控制器嵌入到容器视图中
【发布时间】:2018-05-02 11:32:14
【问题描述】:

我正在尝试根据从 TableViewController 中选择的内容更改容器视图的内容,但我没有想法。

storyboard 中的结构如下所示:

目前,我的容器视图已将 segue 与 Table View 嵌入,效果很好。现在,在从表视图中选择某些内容后,例如地图,我想在容器视图中显示 MapViewController 并保留我的页眉和页脚。我该怎么做?

【问题讨论】:

  • 您必须使用apple docs中的示例手动添加子viewController

标签: ios swift uitableview uicontainerview


【解决方案1】:

首先禁用从容器视图到情节提要中的DestinationViewController 的segue。 现在根据您之前的 tableViewController 选择加载您的 viewController 对象。

//this controller will be change on tableView selection make your own logic here.
let controller = storyboard!.instantiateViewController(withIdentifier: "Second")
addChildViewController(controller)
//Set this value false if you want to set Autolayout programmatically or set it true if you want to handle it with `frame`
controller.view.translatesAutoresizingMaskIntoConstraints = false
containerView.addSubview(controller.view)
controller.didMove(toParentViewController: self)

【讨论】:

  • 谢谢你,你能解释一下把那个指令放在哪里吗?我也有这个问题“这个控制器将在 tableView 选择上改变,在这里创建你自己的逻辑。”你能解释一下如何从 TableView 传递我选择的记录来更改控制器吗?