2012-11-15 68 views
7

我创建了一个特殊的UIView类,它具有某些属性,并且我以编程方式创建它,因为它通常是空白的,但有时会包含其他视图。我知道,如果我编程创建一个UIView,我可以做类似[specialView addSubview: aView];将故事板视图添加为以编程方式创建的视图的子视图

我的问题是,有一个UIView,我在故事板中创建,我需要添加该UIView作为我的特殊视图上的子视图。我已经将它作为ViewController中的一个属性连接起来,但是当我执行与上面相同的代码时,没有任何反应。思考?

回答

9
MyViewController *myViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MyScene"]; 
[specialView addSubview:myViewController.theViewToAdd]; 

并且不要忘记在Interface Builder中为您的场景(视图控制器)提供这样的标识符。

0

包含所需视图的UIViewController可能不会被实例化。所以你需要实例化该控制器并从那里获取视图。

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() 
} 
相关问题