2012-11-15 99 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() 
} 
相關問題