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方法。