1

メソッドapplicationDidBecomeActiveloadView、およびviewDidLoadは、iOS アプリで適切なタイミングで呼び出されます。loadViewとの場合viewDidLoad、次のようになります。

-(void) someMethod {

    //...

    [viewController loadView];
    [viewController viewDidLoad];

}

それが彼らが呼び出される方法であり、それらを呼び出すクラスは何ですか? (アプリの起動の流れを示すソースコードはありますか?多くの場合、ヘッダーファイルしか表示されず、ソースコードは表示されません)。

4

1 に答える 1

4

あなたの質問がよく理解できたら、アプリケーションのライフサイクルについて知りたいのですが、本当ですか?

まあ、それがどのように見えるかを示すことができるアップルが提供するソースコードはないと思います。

アプリケーションの起動時に何が起こるか知りたい場合は、app-launch-sequence-ios-revisited by Olebについて読むことをお勧めします。とても良い投稿です。

あなたが書いたメソッドについては、これらのメソッドを手動で呼び出すべきではありません。それらを呼び出すのは (iOS を介して) フレームワークです。

メソッドloadViewviewDidLoadは、UIViewControllerライフサイクル中に呼び出されるメソッドです。

loadViewストーリーボードまたは nib ファイルを作成できない場合は、(オーバーライド) を使用します。このようにしてUIViewController、新しいビューを提供できます。アップルのドキュメントから:

ストーリーボードまたは nib ファイルでビューを定義できない場合は、loadView メソッドをオーバーライドして、ビュー階層を手動でインスタンス化し、それをビュー プロパティに割り当てます。

言い換えると:

- (void)loadView
{  
   UIView* myCustomView = ... // create the view here
   self.view = myCustomView;
}

メソッドについてはviewDidLoad、ビューがメモリ上に設定されたときに呼び出されます。完了したら、たとえばコンセントが設定されていることを確認し、追加の初期化を実行できます。

アップルのドキュメントから:

このメソッドは、View Controller がそのビュー階層をメモリにロードした後に呼び出されます。このメソッドは、ビュー階層が nib ファイルからロードされたか、loadView メソッドでプログラムによって作成されたかに関係なく呼び出されます。通常、このメソッドをオーバーライドして、nib ファイルからロードされたビューで追加の初期化を実行します。

言い換えると:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // additional initializations here
}

最後に、applicationDidBecomeActiveメソッド (または必要に応じてデリゲート) について、これはアプリケーションが非アクティブ状態からアクティブ状態に移行したことを知らせるために呼び出されます。

UIApplicationDelegateおよびUIViewControllerクラスの参照を読むことをお勧めします。

シーケンス呼び出しを単純に検証したい場合は、メソッドをオーバーライドしてNSLogそこに a を配置します。

それが役に立てば幸い。

于 2012-05-20T14:26:14.050 に答える