web-dev-qa-db-ja.com

[[UIApplicationsharedApplication]デリゲート]を使用する場合

いつ、なぜ[[UIApplication sharedApplication] delegate]を使うべきかわかりません

[self.navigationController pushViewController:myView Animation:YES]がナビゲートしないときにデリゲートを使用します。ナビゲーションを正しく機能させるために、MyView *delegate = [[UIApplication sharedApplication] delegate][delegate pushViewController:myView Animation:YES]を作成します。

解決策が正しいかどうかはわかりません。さらに、[[UIApplication sharedApplication] delegate]の用途や、アプリケーションへの影響もわかりません。

誰かが私を助けることができますか?

ありがとう!

13
rasputin
self.appDelegate = [[UIApplication sharedApplication] delegate];

IVarsでappDelegateという変数を作成すると、アプリデリゲートに自動的に設定されるだけでなく、自分で設定する必要があります。アプリケーションのどこからでも、アプリケーションシングルトンでデリゲートにアクセスできます。

[UIApplication sharedApplication] <---シングルトンへのアクセスを提供します

デリゲートメソッドは、アプリデリゲートへのポインターを返します。

したがって、変数を初期化する必要があるため、それを行うには2つの論理的な場所があります。1つは、初期化子を作成する場合、またはビューとそのコントローラーの使用の開始近くで呼び出されるメソッド内にあります。場所はviewDidLoadにあります。

4
benhowdle89