Storyboardで描画するmodalView(viewControllerの場合もあります)を表示したいと思います。プログラムですべてを作成する必要はありません。全画面表示でなくてもこれを行う方法はありますか?
質問をする別の方法は、InterFaceBuilder /Storyboardの[self.view addSubView:mySubView]
どこに描画されるのかということだと思います。mySubView
Storyboardで描画するmodalView(viewControllerの場合もあります)を表示したいと思います。プログラムですべてを作成する必要はありません。全画面表示でなくてもこれを行う方法はありますか?
質問をする別の方法は、InterFaceBuilder /Storyboardの[self.view addSubView:mySubView]
どこに描画されるのかということだと思います。mySubView
これを適切に行うには、ドキュメントのViewControllerの封じ込めを確認する必要があります。基本的にはaddChildViewController
、ストーリーボードからviewControllerをインスタンス化した後、viewControllerのビューを現在のビュー階層に追加します。
ただし、それを機能させるには、次の手順を実行します。
UIViewController *childViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"<identifier you set in Interface Builder>"];
[self.view addSubView:childViewController.view];
これを「適切に」行う理由の1つは、自動ローテーションとプレゼンテーションのコールバックがサブビューコントローラーに送信されるようにするためです。
object-cクラスのinitWithCoderメソッドをオーバーライドします。
- (id)initWithCoder:(NSCoder *)aDecoder {
if ((self = [super initWithCoder:aDecoder])) {
[self addSubview:[[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0]];
}
return self;
}