我创建了一个特殊的UIView类,它具有某些属性,我是以编程方式编写的,因为它通常是空白的,但有时会包含其他视图。我知道如果我以编程方式创建UIView,我可以执行[specialView addSubview: aView];
我的问题是我在故事板中创建了一个UIView,我需要在我的特殊视图中添加UIView作为子视图。我已经将它作为我的ViewController中的属性连接但是当我执行与上面相同的代码时,没有任何反应。想法?
答案 0 :(得分:9)
MyViewController *myViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyScene"];
[specialView addSubview:myViewController.theViewToAdd];
不要忘记在Interface Builder中为场景(视图控制器)提供这样的标识符。
答案 1 :(得分:2)
另一个解决方案是您可以将viewcontroller添加为childviewcontroller。
func displayContentController(content: UIViewController) {
addChildViewController(content)
self.view.addSubview(content.view)
content.didMoveToParentViewController(self)
}
删除:
func hideContentController(content: UIViewController) {
content.willMoveToParentViewController(nil)
content.view.removeFromSuperview()
content.removeFromParentViewController()
}
答案 2 :(得分:0)
包含所需视图的UIViewController可能无法实例化。因此,您需要实例化该控制器并从那里获取视图。