0

\カウントダウンタイマーを開始し、それに応じてボタンラベルを更新するView Controllerがあります。問題は、ユーザーがビューを離れて戻ってきたときに、タイマーを再起動したくない、または一時停止した時間から続行したくないことです.何それをアクティブにする最良の方法でしょうか?

アプリのタイマーをデリゲートにして、このView Controllerに通知を投稿します。他のView Controllerはそれを必要としないため、通知をリッスンする必要はありません。問題は、タイマーが最後まで実行されたことを確認する必要があることですボタン os を有効にするには、ビューが再度読み込まれたときに通知を少なくとも 1 秒間待つ必要があることを意味します。問題は、この期間中にボタン ラベルに表示する内容です。

ビュー コントローラーがタブ バー アイテムである場合は問題ありませんが、それはプッシュ ビュー コント ローラーであるため、ユーザーがタップすると解放されます。

4

1 に答える 1

1

タイマーを管理するためのシングルトン オブジェクトを作成するだけです。appdelegate から作成できます。そのオブジェクトからいつでも残り時間を取得できます (firedate - datenow)。したがって、通知を操作する必要はありません。また、ビューが割り当てられていないときに、ビューで使用されていない通知を毎秒送信することもお勧めできません。ビューが割り当てられたとき/画面に表示されたときに、そのオブジェクトに残り時間を毎秒尋ね、ラベルやいくつかのサブビューなどを更新できます。NSTimer オブジェクトを使用して簡単に実装できます。

また、そのシングルトン オブジェクトに bool 変数を配置することもできます。これは、firedate に到達したかどうかを示します。または、残り時間が 1 未満であることを確認します。したがって、ビューは割り当て/表示中に変数の値をチェックし、ボタンをアクティブにするか非アクティブにするかを決定できます。

于 2012-08-03T09:13:57.947 に答える