【问题标题】:Add a storyboard view as a subview of a programmatically created view添加故事板视图作为以编程方式创建的视图的子视图
【发布时间】:2012-11-03 14:40:02
【问题描述】:
我创建了一个特殊的 UIView 类,它具有某些属性,并且我以编程方式这样做是因为它通常是空白的,但有时会包含其他视图。我知道,如果我以编程方式创建 UIView,我可以执行类似 [specialView addSubview: aView];
的操作
我的问题是我在故事板中创建了一个 UIView,我需要将该 UIView 添加为我的特殊视图上的子视图。我已将它连接为我的 ViewController 中的一个属性,但是当我执行与上面相同的代码时,什么也没有发生。想法?
【问题讨论】:
标签:
ios
xcode
cocoa-touch
uiview
storyboard
【解决方案1】:
MyViewController *myViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyScene"];
[specialView addSubview:myViewController.theViewToAdd];
并且不要忘记在 Interface Builder 中为您的场景(视图控制器)提供这样的标识符。
【解决方案2】:
另一种解决方案是您可以将视图控制器添加为子视图控制器。
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()
}
【解决方案3】:
包含您想要的视图的 UIViewController 可能不会被实例化。因此,您需要实例化该控制器并从那里获取视图。