gpt4 book ai didi

ios - 在容器 View 中交换 VC - childVC 不适合容器

转载 作者:行者123 更新时间:2023-11-30 12:43:01 24 4
gpt4 key购买 nike

最新的 Swift/XCode/iOS。

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

我有一个包含一些容器 View 的 Master VC。一个容器包含多个按钮(作用类似于选项卡栏)。当您点击按钮时,另一个“详细信息”容器中的 View Controller 会更改子 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)


}

细节容器的 VC 已更换,但我无法让新的完全适合。 Child VC 运行经过屏幕的底部和右侧。上面添加的约束的存在似乎没有什么区别。无论他们是否存在,我都会得到相同的结果。我期望框架 = 边界行代码以确保子级完全适合详细信息容器。

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

编辑:抱歉,我忘了提及“detailPaneVCReference”是对容器 View 中起始 VC 的引用,在嵌入 Segue 期间抓取。 “detailContainerView”是对容器 View 本身的引用,也在嵌入过程中获取。 “ParentVC”是对以相同方式抓取的 MasterVC 的引用。

最佳答案

好的,危机结束了。结果我正在为 12 英寸 iPad 设计 Storyboard 并作为 9.7 英寸 iPad 运行。几个 View 具有固定值高度/宽度 - 因此运行应用程序时会出现不稳定的外观。

关于ios - 在容器 View 中交换 VC - childVC 不适合容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42024876/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com