将故事板视图添加为以编程方式创建的视图的子视图

8
我创建了一个特殊的UIView类,它有一些属性。由于它通常是空白的,但有时会包含其他视图,所以我通过编程方式创建了它。我知道如果我以编程方式创建一个UIView,我可以像这样做:[specialView addSubview: aView]; 我的问题是,我在Storyboard中创建了一个UIView,我需要将该UIView作为子视图添加到我的特殊视图中。我已经将其连接为ViewController中的属性,但当我执行与上面相同的代码时,什么都不发生。有什么想法吗?
3个回答

9
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()
}

0
那个包含你想要的视图的UIViewController可能没有被实例化。因此,您需要实例化该控制器并从那里获取视图。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接