1

NIB ファイルからストーリーボードのビュー コントローラーにビューを初期化しようとしています。

これが私がしたことです:

  1. ビュー コントローラーをストーリーボードにドラッグし、UIView obj をプレースホルダー ビューとして配置し、そのクラスを「CustomControl」という名前のカスタム ビュー クラスに変更します。

  2. 次に、NIB ファイルから CustomControl クラスをセットアップし、そのサブビューのアウトレットを接続します。

私の質問は、この CustomControl ビューを nib からビュー コントローラーにあるプレースホルダー ビューにロードする方法です。nib ファイルでこれを個別に行う理由は、このコントロール (カスタム UIView クラス) を他のプロジェクトで再利用する可能性があるためです。また、View Controller とビューコントローラーに関するコントロールの制約をあまり気にせずにプレースホルダービュー。

前もって感謝します!

4

2 に答える 2

0

ラッパー ビュー コントローラーを用意します。

非ストーリーボード ビュー コントローラーをストーリーボードに配置する代わりに、ラッパー ビュー コントローラーをストーリーボードに配置します。

ラッパー ビュー コントローラーは、非ストーリーボード ビュー コントローラーをインスタンス化します。次にラッパーは、非ストーリーボードを子ビュー コントローラーとして追加します ( -addChildViewController:)。最後に、ラッパーのビューは、ストーリーボード以外のビューをサブビューとして追加します。

- (void)viewDidLoad
{
    …
    MyViewController *child = [[MyViewController alloc] init];
    [self addChildViewController:child];
    [self.view addSubview:child.view];
    …
}
于 2013-06-14T03:23:15.797 に答える
0

これはストーリーボードからすべて一緒に残してください。

プレースホルダーを持つ代わりに、何も持たないでください。別のコントローラーがこのビュー コントローラーをロードする場合は、[[MyViewController alloc] init]またはを使用できます[[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]。ビュー コントローラーが作成されると、それをナビゲーション コントローラーにプッシュしたり、タブに割り当てたり、提示されたビュー コントローラーとしてポップアップしたりできます。

セグエを行う能力を失いますが、実際にはセグエは必要ありません。

于 2013-06-14T03:11:28.227 に答える