IOSとXcodeは初めてです。ストーリーボードを使用して、分離されたビューを設計し、メインのUIViewControllerに追加する方法がわかりません。
私はさまざまなアプローチをしました。
UIViewController
にビューを追加します。メインのViewController.mで、viewDidLoadに新しいUIViewController
インスタンスを取得してから、[self.view addSubview:newUIViewController.view]
。しかし、追加されたビューが表示されません。ViewController
でインスタンスを取得しようとしています。そして、xibのビューでaddSubview
。しかし、それも失敗しました。そうするための正しい方法または実用的な解決策はありますか?
私はそれを行う方法を考え出しました。次のように説明されています:
重要な点は、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;
}
カスタムクラスがストーリーボードによってロードされ、initWithCodeが呼び出されるという考え方です。インデックス0は、.xib InterfaceBuilderのルートビューです。
ちょっとトリッキーですが、うまくいきます。
ストーリーボードで、ViewControllerをドラッグアンドドロップします。ビューコントローラにはメインビューが付属しています。追加されたViewControllerの外側をクリックし、その中央をクリックして、そのメインビューを選択します。ここで、IBの場合と同じように、uiviewなどをメインビューにドラッグします。