要するに、 1 つの XIB ファイルにすべて含まれている UIView のセットから特定の uiview をロードするにはどうすればよいですか? iアウトレット?どうやって?
場合によっては、2 番目のビューではなく最初のビューを表示したい場合や、1 番目のビューではなく 3 番目のビューを表示したい場合があります。それらはすべて同様のUIViewですが、モーダルに表示できるのは1つだけです..ボタンをクリックしたユーザーの操作に応じて、どのUIViewを表示するかはわかっています..しかし、問題は、表示する特定のビューを具体的に選択してアタッチする方法です.それをモーダルに提示します。
詳細には、これは私がこれまでに行ったことです:
こんにちは、TestViewController.xib ファイル内に次のような 3 つのビュー オブジェクトがあります。
この xib の「ファイルの所有者」は、TestViewController クラスに接続されています。
実行時に、次のように TeamViewController クラスをプログラムでインスタンス化しています。
TestViewController *tVController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
次に、ビューを次のようにモーダルに表示します。
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:ls];
[nav setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[nav setModalPresentationStyle:UIModalPresentationFormSheet];
nav.navigationBar.tintColor = [UIColor blackColor];
[nav setNavigationBarHidden:YES];
[rootViewController.navigationController presentModalViewController:nav animated:YES];
nav.view.backgroundColor = [UIColor blackColor];
self.modalNavController = nav;
[nav release];
[tVController release];
これはすべて機能し、ビューがロードされますが、デフォルトではビューの 1 つだけが自動的にロードされます。私がやりたいことは、TestViewController をインスタンス化するときに特定の UIView のみをロードする方法を知ることができるようにすることです。これを達成するために私が考えた1つの方法は、それらのためにIBOutletsを作成し、どのビューがそのように表示されるかを管理することでしたか? そのため、クラス内に 3 つの IBOutlets を作成し、それらを Xib のファイル所有から各 UIView に接続しました。これで無事つながりました。
IBOutlet *view1;
IBOutlet *view2;
IBOutlet *view3;
私はこのようなことをすることができます:
[self.view addSubview:view2];
これによりview2が適切に表示されますが、TestViewControllerをインスタンス化するときに理想的であるため、モーダルビューでは表示されません。
私のこの目標を達成する方法を教えてくれる人はいますか?
ありがとう