web-dev-qa-db-ja.com

viewDidLoad()、LoadView()

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

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

ありがとう。

16
iOS

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];
}
*/

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

52
Ishu
viewDidLoad()

nIBからビューをロードし、起動後にカスタマイズを実行する場合に使用します。

LoadView()

プログラムでビューを作成する場合に使用します(Interface Builderを使用せずに)。

17
ashokdy

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

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

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

7
futureelite7

Stroyboardまたはxibファイルからビューを初期化する場合は、このメソッドをオーバーライドしたり、内部で[superloadView]を呼び出したりしないでください。メソッド内で[superloadView]を呼び出す場合は、このメソッドをオーバーライドせずに、次のコードをviewDidLoadメソッドに配置することをお勧めします。

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

2
Zhang Kai Yu

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

viewDidLoadが呼び出されます...ビューの読み込みが完了すると。

loadViewは、ビューがロードするように指示されたときに呼び出されます。

どちらも良くも悪くもありません。それはすべてあなたのデザインに依存します。

幸運を :)

0
Aurum Aquila

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

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

0
Piyush