iPhone:隐藏视图后重新启动循环animation,然后重新出现?
我的应用程序有两个不同的视图标签栏。 在第一个选项卡上,其视图具有连续循环的animation。
当我点击第二个标签,然后回到第一个,animation已经停止。 我知道我可以在viewWillAppear:方法中重新启动它,但是问题比这个更大。 具体来说,如果应用程序转换到后台状态,则animation也将停止,然后移回到前台。 在这种情况下,viewWillAppear不会被调用前景转换,所以viewWillAppear技术不会做任何事情。
处理这种情况的最好方法是什么?
谢谢。
为了保持封装,你不希望你的AppDelegate
知道哪些视图需要恢复animation。 但是,您可以拥有包含相应通知的animation注册的视图(例如,在视图的init
方法中)并重新启动animation本身。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startAnimation) name:UIApplicationWillEnterForegroundNotification object:nil];
…并且不要忘记使用dealloc
方法从通知中心注销。
您可以将animation设置为从AppDelegate的applicationWillEnterForeground方法中继续。 如果你有一个AppDelegate的第一个选项卡的视图控制器的引用,只需从AppDelegate调用视图控制器的viewWillAppear方法。