我有一个使用计时器的游戏。用户有10秒的时间来做一些事情。我在里面有一个暂停按钮,我正在尝试设置viewWillDisappear还剩多少时间,然后用viewWillAppear还剩多少时间来设置标签。因此,如果用户暂停时还有6秒,那么当它们恢复时,viewWillAppear将被执行,标签将处于6秒。但问题是,viewWillAppear是在用户第一次启动该级别时执行的,这会完全扰乱时间。有没有办法在第一次之后才能执行viewWillAppear?谢谢。
发布于 2014-03-30 22:52:45
你的观察是正确的。每次出现视图时,都会调用viewWillAppear
。当然,它也是在第一次出现之前调用的。
你该怎么办?viewDidLoad
只被调用了一次。它是在调用viewWillAppear
之前调用的。您可以在viewDidLoad
中将剩余时间初始化为10s的iVar。使用与在viewWillDisappear
中相同的iVar (或您正在使用的任何内容)。在第一次出现时,viewWillAppear
将被立即调用,因此将计数器重新设置为保存的剩余时间值不会对您的逻辑造成任何损害。
https://stackoverflow.com/questions/22750734
复制