ビューを表示せずにモーダルにロードする方法はありますか? モーダル ビュー コントローラーのメソッドにアクセスして、UI コンポーネントのプロパティを XIB に設定する必要があります。これらのプロパティを設定したいのですが、すぐにビューを表示したくありません。ユーザーが電話を回転させたときにそれを明らかにしたい。
アプリが読み込まれるとすぐにモーダル ビューを表示するソリューションを除いて、すべてが機能しています。
ありがとう、ハウィー
ビューを表示せずにモーダルにロードする方法はありますか? モーダル ビュー コントローラーのメソッドにアクセスして、UI コンポーネントのプロパティを XIB に設定する必要があります。これらのプロパティを設定したいのですが、すぐにビューを表示したくありません。ユーザーが電話を回転させたときにそれを明らかにしたい。
アプリが読み込まれるとすぐにモーダル ビューを表示するソリューションを除いて、すべてが機能しています。
ありがとう、ハウィー
ビュー コントローラーでは、別のコントローラーのアウトレットを作成できます。あなたがする必要があるのは、インターフェイスビルダーの同じnibファイルで次のようなものです:
MainController UIViewController
->UIview UIView
ModalController UIViewController
->ModalControllerView UIView
MainController.h で、View Controller のアウトレットを作成します。
@property(nonatomic, retain) IBOutlet ModalController *ModalController
(もちろん、ivar が必要で、インクルードも必要です)
Interface Builder で、ModalController mainController を ModalController ビューに接続します。オプションのドラッグまたは任意の方法を使用します。
nib が読み込まれると、modalController がインスタンス化された ModalController に設定され、MainController のメソッドが modalController にアクセスして、必要なことを実行できるようになります。次に、 presentModalView を使用して表示するだけです。
ただし、これを行うより一般的な方法は次のとおりだと思います。
- (IBAction)showInfo {
FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
controller.delegate = self;
controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controller animated:YES];
[controller release];
}
(これは、Xcode の Utility Application プロジェクト テンプレートから直接取得したものです。)
つまり、モーダル コントローラを作成し、独自の nib ファイルを表示してから、必要に応じて手動で nib ファイルをロードします。これは、実際に必要になるまでオブジェクトをインスタンス化しないため、メモリ効率が高くなります。
あなたができない理由もありません:
modalController = [[ModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];
MainController の viewDidLoad または initWithCoder メソッドなどで、必要に応じて構成に進みます。
別のビューがある場合は、このビューを既存のビューの下に挿入できますか?
(void)insertSubview:(UIView *)view atIndex:(NSInteger)index
次に、デバイスが回転すると、ビューが切り替わりますか?