视图变得可见后,将触发willEnterForeground()

时间:2016-03-26 15:55:34

标签: ios swift

我有UIlabel显示倒计时和观察员:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("willEnterForeground:"), name:UIApplicationWillEnterForegroundNotification, object: nil)

问题是willEnterForeground()仅在视图可见后才会触发。如果在该函数中我为标签timerLabel.text = "blah"添加了一个新值,则用户(在将应用程序返回到前台时)将首先看到标签在输入背景时所具有的值,并且仅在半秒后标签文字将会更新。

有没有办法在视图可见之前更新视图?

1 个答案:

答案 0 :(得分:2)

实际上,您的代码正常运行。问题是用户首先看到应用程序进入后台时拍摄的快照。然后运行您的代码,然后出现真实的应用程序 - 带有更新的标签文本值。

所以你抱怨说你不喜欢整个快照的工作方式。但是,由于已经制作了快照,因此您无能为力。设置该快照的唯一方法是在应用程序进入后台时设置标签的值(我认为这里不可能,因为你不知道未来的)。

我建议您在应用程序进入后台时空白标签。这样,至少,用户最初看不到错误的值。