【问题标题】:Swapping VC's in a Container View - childVC does not fit Container在容器视图中交换 VC - childVC 不适合容器
【发布时间】:2017-06-20 20:41:15
【问题描述】:

最新的 Swift/XCode/iOS。

好的,我正试图在容器视图中换掉子 VC。我已经阅读了几篇描述如何做到这一点的帖子,它们非常有帮助。但是,我似乎遇到了一个可以解决的限制问题。

我有一个包含一些容器视图的主 VC。一个 Container 包含几个按钮(就像一个标签栏)。当您点击一个按钮时,另一个“详细信息”容器中的视图控制器会更改子 VC。代码如下:

    @IBAction func ToBioPage(_ sender: UIButton) {
    //SET RIGHT PANE VIEW TO BIO PAGE

    //INSTANTIATE NEW VC
    let vc = storyboard?.instantiateViewController(withIdentifier: "Biography")

    //REMOVE OLD VC
    detailPaneVCReference?.willMove(toParentViewController: nil)
    detailPaneVCReference?.view.removeFromSuperview()
    detailPaneVCReference?.removeFromParentViewController()

    //ADD NEW VC
    ParentVC?.addChildViewController(vc!)
    vc?.view.frame = (detailContainerView?.bounds)!
    detailContainerView?.addSubview((vc?.view)!)


    //ADD CONSTRAINTS

    //TOP ANCHOR
    vc?.view.topAnchor.constraint(equalTo: (vc?.view.superview?.topAnchor)!).isActive = true

    //BOTTOM ANCHOR
    vc?.view.bottomAnchor.constraint(equalTo: (vc?.view.superview?.bottomAnchor)!).isActive = true

    //LEADING ANCHOR
    vc?.view.leadingAnchor.constraint(equalTo: (vc?.view.superview?.leadingAnchor)!).isActive = true

    //TRAILING ANCHOR
    vc?.view.trailingAnchor.constraint(equalTo: (vc?.view.superview?.trailingAnchor)!).isActive = true


    vc?.didMove(toParentViewController: ParentVC)


}

Detail Container 的 VC 换掉了,但我无法让新的 VC 完全适合。 Child VC 跑过屏幕的底部和右侧。上面添加的约束的存在甚至似乎没有什么不同。无论它们是否存在,我都会得到相同的结果。我期待 frame = bounds 代码行来确保孩子完全适合细节容器。

我错过了什么/做错了什么?

编辑:对不起,我忘了提到“detailPaneVCReference”是对容器视图中起始 VC 的引用,在嵌入 segue 期间抓取。 “detailContainerView”是对 Container View 本身的引用,也是在嵌入 segue 期间抓取的。 “ParentVC”是对以相同方式抓取的 MasterVC 的引用。

【问题讨论】:

    标签: ios swift uicontainerview


    【解决方案1】:

    OK 危机结束。原来我是在为 12 英寸 iPad 设计故事板并作为 9.7 英寸 iPad 运行。几个视图具有固定值的高度/宽度 - 因此在运行应用程序时外观不稳定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 2015-05-09
      相关资源
      最近更新 更多