16

viewDidLoad()LoadView()の違いは何ですか?それらはどのように異なっていますか?

XIBを使用せずにアプリケーションを開発する場合、どちらが優れていますか?

ありがとう 。

4

7 に答える 7

54

ViewDidLoadビューの読み込みが完了するとloadView呼び出され、読み込みが開始されると呼び出されます。

また、新しいプロジェクトを作成すると、これらのメソッドに関するコメントが表示され、どの関数をいつ使用する必要があるかが明確に示されます

これを見る

/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/


/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
}
*/

これらのコメントは明確で理解しやすいです。

于 2011-03-02T05:58:33.523 に答える
7

IB を使用して UI を構築する場合は、IB 後のすべての初期化を viewDidLoad で行う必要があります。nib を使用してコントローラーを初期化する場合、クラスは loadView をまったく呼び出しません。

コードでコントローラを初期化すると、viewController は最初に loadView を呼び出し、次に viewDidLoad を呼び出します。好みに応じて、loadView または viewDidLoad ですべての初期化を行うことができます。

ただし、loadView を使用する場合は、self.view を読み取る前に必ずビュー プロパティを設定してください。そうしないと、無限ループに陥ってクラッシュします。

于 2011-03-02T06:12:18.163 に答える
2

stroyboard または xib ファイルからビューを初期化する場合は、このメソッドをオーバーライドしたり、内部で [super loadView] を呼び出したりしないでください。メソッド内で [super loadView] を呼び出す場合は、このメソッドをオーバーライドせずに、次のコードを viewDidLoad メソッドに追加してください。

ビューをプログラムで初期化する場合は、[super loadView] を決して呼び出さないでください。rootView を self.view プロパティに割り当てる必要があります。そうしないと、完全なクラッシュが発生する可能性があります。

于 2013-06-08T07:23:58.323 に答える
0

View Controller は、関連付けられた nib がない場合、関連付けられた nib からビューをロードし、自動的に loadView() メソッドを呼び出してビューを埋めます。その場合、loadView() メソッドを実装する必要があります。デフォルトでは nil を返します

ビューがメモリに読み込まれると、ここで viewDidLoad() メソッドが呼び出され、要件に従ってカスタム初期化を行うことができます。

于 2011-03-02T07:11:41.833 に答える
0

当たり前じゃないですか?

viewDidLoadが呼び出されます... ビューの読み込みが終了したとき。

loadViewビューが読み込まれるように指示されたときに呼び出されます。

どちらが良くも悪くもありません。それはすべてあなたのデザイン次第です。

幸運を :)

于 2011-03-02T05:50:21.350 に答える
-7

メソッドを使用せずにアプリケーションを開発している場合はxib LoadView()メソッドが呼び出され、xib がある場合はViewDidLoadメソッドが呼び出されます

そのため、LoadView メソッドを使用することをお勧めします。

于 2011-03-02T05:57:30.357 に答える