NSTimer用于视图控制器之间的倒计时

时间:2012-07-31 11:37:07

标签: view uinavigationcontroller nstimer countdowntimer appdelegate

\我有一个视图控制器启动倒计时器并根据它更新按钮标签。问题是当用户离开视图并返回时我不想重新启动计时器o继续暂停时间。激活它的最佳方式是什么?

使应用程序中的计时器委托并将通知发布到此视图控制器。因为其他视图控制器不需要它,所以他们不需要听任何通知。问题是我必须确保计时器具有向下运行0以启用按钮操作系统,这意味着当再次加载视图时,我需要等待通知至少1秒钟,以确保他的时间真的很高。问题是在此期间按钮上显示的内容标签

如果视图控制器是一个标签栏项目,我就没问题了,但它是一个pushv视图控制器,所以它会在用户点击时释放。

1 个答案:

答案 0 :(得分:1)

只需创建一个单例对象来管理您的计时器。您可以从appdelegate创建它。 您可以随时从该对象获取剩余时间(firedate - datenow)。所以你不需要处理通知。在未分配通知的情况下,每隔一秒发送一个通知也不是一个好主意。当您的视图被分配/来到屏幕时,可以每秒向该对象询问剩余时间并更新其标签或一些子视图等。您可以使用NSTimer对象轻松实现它。

您还可以在该单例对象中放置一个bool变量,表示是否触发了。或者检查剩余时间< 1。因此,您的视图会在分配/显示时检查变量的值,然后您可以决定激活或停用按钮。