2012-11-15 13 views
7

特定のプロパティを持つUIViewの特別なクラスを作成しましたが、通常は空白ですが他のビューも含まれるためプログラムで行いました。私が知っているのは、プログラムでUIViewを作成すると、何かができるのです。[specialView addSubview: aView];プログラムで作成したビューのサブビューとしてストーリーボードビューを追加します。

私の問題は、私がストーリーボードで作成したUIViewがあり、私の特別なビューのサブビューとしてそのUIViewを追加する必要があることです。 ViewControllerのプロパティとして接続しましたが、上記と同じコードを実行すると何も起こりません。思考?

答えて

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

インターフェイスビルダのシーン(ビューコントローラ)にこのような識別子を付けることを忘れないでください。

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() 
} 
関連する問題