我的应用有一个带有两个不同视图的标签栏。在第一个选项卡上,其视图具有连续循环动画。
当我点击第二个标签,然后回到第一个,动画停止了。我知道我可以在viewWillAppear:方法中再次启动它,但问题比那更大。具体来说,如果应用程序转换为背景状态,动画也将停止,然后移回前景。在这种情况下,在前景转换时不会调用viewWillAppear,因此viewWillAppear技术不会执行任何操作。
处理这种情况的最佳方法是什么?
感谢。
答案 0 :(得分:4)
为了保持封装,您理所当然地不希望AppDelegate
知道哪些视图需要恢复动画。但是您可以拥有包含相应通知的动画寄存器的视图(例如在视图的init
方法中)并重新启动动画。
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(startAnimation)
name:UIApplicationWillEnterForegroundNotification
object:nil];
...不要忘记在dealloc
方法中取消注册通知中心。
答案 1 :(得分:0)
您可以将动画设置为在AppDelegate的applicationWillEnterForeground方法中继续。如果您在AppDelegate中引用了第一个选项卡的视图控制器,只需从AppDelegate调用视图控制器的viewWillAppear方法。