我创建了一个CustomViewController并将其放在界面构建器中。然后我将所有设置为使用CustomViewController的视图作为另一个viewcontroller中的子视图,但是当我将它添加到另一个viewcontroller时,自定义uivewcontroller的布局就会出错。
这会导致什么?什么是这样做的方法?
整个项目可以在https://github.com/agustr/STHLMPubCrawl找到,只需下载并运行(在iphone 5模拟器中)。如果有任何关于它应该如何看的问题你可以将初始视图指针移动到'place view controller cene'
这是代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("GPPlaceViewController") as? GPPlaceViewController
if vc != nil{
vc?.view.layer.borderWidth = 4
vc?.view.layer.borderColor = UIColor.redColor().CGColor
self.GPPlaceView.layer.borderColor = UIColor.yellowColor().CGColor
self.GPPlaceView.layer.borderWidth = 2
vc?.view.frame.size = self.GPPlaceView.frame.size
self.GPPlaceView.addSubview(vc!.view)
}
else {
print("could not load GPPlacePageViewController from storyboard")
}
欢迎任何帮助。
答案 0 :(得分:0)
我不确定这种将VC的视图添加到另一个视图的方法是错误的还是过时的,但我似乎记得它在某些时候起作用。我联系了苹果,他们告诉我使用ContainerView。据说这个讲座“实现UIViewController遏制”https://developer.apple.com/videos/wwdc/2011/详细解释。
使用包含视图时遇到的最大问题是您无法在界面构建器中拖动segue,但您必须右键单击或控制单击以将segue指向适当的位置。然后,您可以将父segoutroller中的segue视为包含容器视图的viewcontroller。