ユーザーが自分のアプリに戻るたびに、自分のクラスの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. インスタンスを介して静的メソッド内で静的メソッドを呼び出す方法
- 3. デリゲートを呼び出しクラスとして設定する
- 4. クラスの他のメソッドが呼び出されたときに、クラスのメソッドを呼び出す方法(Ruby)
- 5. c#デリゲート:ポテンシャル例外を持つイベント(デリゲート)ですべてのメソッドを呼び出す方法は?
- 6. Android :: Broadcasr Receiverクラスを呼び出すメソッドの呼び出し?
- 7. 具体的なクラスのメソッド呼び出しを呼び出す
- 8. デリゲートが存在しない場合に呼び出されるメソッドを呼び出す方法
- 9. クラス内からメソッド内でメソッドを呼び出す方法
- 10. デリゲートをインスタンス化せずにデリゲートの呼び出しリストにメソッドを追加する方法は?
- 11. デリゲートにデリゲート型をキャストしてEndInvokeを呼び出す
- 12. 反応タイマーを介して(ラチェット)WampServerメソッドを呼び出す
- 13. C#でメソッド/呼び出しを別のメソッドから呼び出す方法は?
- 14. 別のクラスのC#で別のメソッドを呼び出す方法
- 15. すぐに別のクラスからメソッドを呼び出す方法
- 16. Androidの別のクラスからメソッドを呼び出す方法は?
- 17. Java - 別のクラスのメソッドを呼び出す方法
- 18. MQLで未知のクラスのメソッドを呼び出す方法は?
- 19. 別のプロジェクトからクラスのメソッドを呼び出す方法
- 20. Javaの別のクラスからメソッドを呼び出す方法
- 21. Androidの別のクラスからメソッドを呼び出す方法
- 22. UITextViewを呼び出す方法addTargetメソッドを呼び出す
- 23. 呼び出すクラスのプロパティを呼び出す方法
- 24. 呼び出し元クラスのコピーコンストラクタをpimplクラスから呼び出す方法は?
- 25. MVCでWebAPIメソッドを呼び出してjsonオブジェクトを呼び出す方法
- 26. .NETでクラスのメソッドを動的に呼び出す方法
- 27. RUBY - 別のクラスからメソッドを呼び出す方法
- 28. Main_Activityクラスのメソッドをヘルパークラスから呼び出す方法は?
- 29. 他のクラスからonCreateメソッドを呼び出す方法は?
- 30. 別のクラスからメソッドを呼び出す方法は?
こんにちは、私の質問は、どのように私の更新メソッドを持つビューコントローラへの参照を作成できますか? – cgossain
私は自分の答えを更新しました。 – Gianz