ユーザーが自分のアプリに戻るたびに、自分のクラスの1つで「リフレッシュメソッド」を呼び出す必要があります(マルチタスク)。マルチタスクのためには、私はアプリケーションデリゲートを通してこれを行う必要があるようです。だから私のクラスの "リフレッシュメソッド"を呼び出す最良の方法は何ですか、しかし、アプリケーションの代理人から?デリゲートを介してクラスのメソッドを呼び出す方法(マルチタスクメソッド)?
0
A
答えて
2
Vinで説明したように、applicationWillEnterForegroundメソッドで追加できます。 UIを更新するには、アプリケーションデリゲートにビューコントローラへの参照を設定し、そこからupdateメソッドを呼び出します。また、NSNotificationCenterを使用して、他のクラスの更新プログラムに通知することもできます。
アプリケーションデリゲートからビューコントローラへの参照を追加することに決めた場合は、プロパティを作成するだけで済みます。これはそれを行う一つの方法です。ただし、依然としてプロジェクトの構造に依存します。
SampleAppDelegate.h
SampleViewController *viewController;
...
@property (nonatomic, retain) SampleViewController *sampleViewController;
...
SampleAppDelegate.m
...
@synthesize sampleViewController;
...
// don't forget to release in dealloc
[sampleViewController release]
...
あなたのビューコントローラをロードどこその後、アプリデリゲートのsampleViewControllerプロパティの値を割り当てることができます。したがって、たとえば、アプリケーションデリゲートのdidFinishLaunchingWithOptionsメソッドでプログラムを使用してビューコントローラを初期化した場合は、そこに割り当てます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
SampleViewController *_sampleViewController = [[SampleViewController alloc] initWithFrame:CGRectMake(0,0,320,480)];
self.sampleViewController = _sampleViewController;
[window addSubview:_sampleViewController.view];
[sampleViewController release];
[self.window makeKeyAndVisible];
return YES;
}
あなたはアプリケーションデリゲートの外にビューコントローラをロードした場合、あなたはsharedApplicationのデリゲートのプロパティを経由してアプリデリゲートにアクセスする必要があります。
((SampleAppDelegate*)[UIApplication sharedApplication] delegate).sampleViewController = _sampleViewController;
次に、applicationWillEnterForegroundメソッドからupdateメソッドを呼び出すことができます。
- (void)applicationWillEnterForeground:(UIApplication *)application {
/*
Called as part of the transition from the background to the active state: here you can undo many of the changes made on entering the background.
*/
[self.sampleViewController updateMyView];
}
1
applicationWillEnterForeground
は、アプリケーションがフォアグラウンドに近づくときに呼び出されます。そこにあなたのリフレッシュロジックを書いてください。
関連する問題
- 1. デリゲートを呼び出しクラスとして設定する
- 2. クラスの他のメソッドが呼び出されたときに、クラスのメソッドを呼び出す方法(Ruby)
- 3. Android :: Broadcasr Receiverクラスを呼び出すメソッドの呼び出し?
- 4. デリゲートが存在しない場合に呼び出されるメソッドを呼び出す方法
- 5. デリゲートにデリゲート型をキャストしてEndInvokeを呼び出す
- 6. UITextViewを呼び出す方法addTargetメソッドを呼び出す
- 7. Javaの別のクラスからメソッドを呼び出す方法
- 8. Androidの別のクラスからメソッドを呼び出す方法は?
- 9. 呼び出し元クラスのコピーコンストラクタをpimplクラスから呼び出す方法は?
- 10. .NETでクラスのメソッドを動的に呼び出す方法
- 11. 他のクラスからonCreateメソッドを呼び出す方法は?
- 12. 別のクラスからメソッドを呼び出す方法
- 13. RUBY - 別のクラスからメソッドを呼び出す方法
- 14. 基本クラスによって実装されたインターフェイスを介してクラスのメソッドを呼び出すC#
- 15. 別のクラスのメソッドの呼び出し方法
- 16. 別のクラスのメソッドを呼び出す
- 17. クラスのインラインメソッドを呼び出すpublicメソッド
- 18. 別のクラスを呼び出すRepaint()メソッド
- 19. Douglas Crockfords - 基本メソッドを継承クラスに呼び出す方法
- 20. GWTのクラスを呼び出す方法
- 21. Objective Cではメソッドを呼び出すクラスと、呼び出さないメソッドのみを呼び出す方法を教えてください。
- 22. jQuery.sheet.SUM()メソッドの呼び出し方法は?
- 23. メソッドを呼び出す方法
- 24. メソッドを一度呼び出す方法
- 25. Javaメソッドを呼び出す方法
- 26. メソッドでスレッドを呼び出す方法
- 27. クラス間のメソッドの呼び出し
- 28. ボタンを使って別のクラスのメソッドを呼び出す方法iOS
- 29. 呼び出しクラスのメソッドを実行しています
- 30. 同じクラスの別のメソッドでメソッドの変数を呼び出す方法
こんにちは、私の質問は、どのように私の更新メソッドを持つビューコントローラへの参照を作成できますか? – cgossain
私は自分の答えを更新しました。 – Gianz