これは、使用しているアーキテクチャによって異なります。 AppleはModel-View-Controllerのフラグを立てますが、実際はUIViewControllerがViewです。 例: かなりのLoginViewControllerがあるとします。インスタンス化すると、次のようになります。
LoginViewController *loginVC = [[LoginViewController alloc] init];
この時点では、ビューはロードされません。あなたのViewControllerはinitメソッドを実行したばかりです。システムは
loginVC.view
が
- (void)loadView;
あなたはまさにそれを行う必要があるだろう、最初に実行されるメソッドを呼び出すと、あなたのビューをロードします。ですから、私が好むアプローチは追加のLoginViewを持つことです。
であり、LoginViewのinitメソッドでは、ビューを構築するコードを記述する必要があります。
しかし、あなたはこのようなすべてのあなたのサブビューをLoginViewを排除し、インスタンス化できます。私の経験で
- (void)loadView
{
self.view = [[UIView alloc] init];
UIButton *button = [[UIButton alloc] initWithTargetBlaBlaBla...];
[self.view addSubview:button];
// add more fancy subviews
}
を、最初のアプローチは、第1よりもはるかにきれいです。それはまた、バージョン管理をもっと簡単にします(xibをマージしようとします、私はあなたを勇気づけます)。私はいつもMyView.mを使ってビュー(a.k.aセットアップconstriants、スタイル)をビルドし、MyViewController.mアニメーション、lifeCycleのようなものを使用します。私はMyView.mがプログラマチックなxibだと思っています。だからあなたはxibでできることは何でも、私はあなたの視点の中でそれを実行できるはずです。
希望すると助かります!
どちらも正しいです。perticular viewの要件に依存します – Simmy