0

プログラムで作成されたUIViewControllerからインターフェイスビルダーが作成したビューをロードする方法は? 私はObjective-Cを使用しています。

インターフェイス ビルダーを使用しないリファレンス プロジェクトで開始できたので、ストーリーボードはありません。プログラムでビューを正常にロードしましたが、インターフェイス ビルダーで作成されたビューをロードできるようにしたいと考えています。

詳細: 2 つのビュー コントローラー A と B があります。現在、A にいます。ボタンをクリックすると、そのボタン ハンドラーでビュー コントローラー B を次のようにロードします。

self.viewControllerB = [[ViewControllerB alloc] init];
[self.navigationController pushViewController:viewControllerB animated:YES]

.m と .h を使用して手動で ViewB を作成しました。一連のコントロールを定義してプログラムでレイアウトする initWithFrame を使用すると、上記のように正常に呼び出すことができます。

プロジェクトに新しいファイルを追加します。これは、ビルダーでそれを表示する UIView です。TableView をビューにドロップすると、この負荷を確認したいだけです。xib に ViewB.xib という名前を付け、下の図のように Class を ViewB に設定しました (回答 1)。

4

1 に答える 1

1

.xib からビューをロードする必要があるときはいつでも、これを使用します。

最初にインターフェイス ビルダーでビューの nib を作成し、そのカスタム クラスをビューのクラスに設定してください。図を参照してください。

ここに画像の説明を入力

次に、次のようにコードにロードします。

MyCustomNibView *myView;
NSArray *topLevelItems = [[NSBundle mainBundle] loadNibNamed:@"MyCustomNibView" owner:nil options:nil];

for (id view in topLevelItems) {
    if ([view isKindOfClass:[MyCustomNibView class]]) {
       myView = (MyCustomNibView *)view;
       break;
    }
}
于 2012-09-27T17:53:22.993 に答える