用户第一次访问我的应用时,会询问他们是否要允许推送通知。与此同时,我还有一些动画正在进行中。推送通知问题模糊了这些动画。
我想知道是否有人知道如何确定是否正在显示此警报视图。如果我可以确定它何时被解雇(无论用户选择什么),我可以延迟动画的开始直到此事件发生。尽管进行了大量研究,但我不知道是否可以做到这一点。
感谢您的任何建议。
修改 谢谢你的建议。我没有解释的一件事是,动画从初始视图控制器(SplashScreenViewController)启动,而推送通知发生在AppDelegate中。我需要一个很好的方法来让这两个类进行通信而不会产生竞争条件。
答案 0 :(得分:0)
我认为您专注于特定问题,即警报模糊了您的动画。但是,您应该尝试解决的问题是:我是否要求进行远程通知注册,如果是,是否已经给出了?
您应该可以使用UIApplication
和UIApplicationDelegate
上提供的方法组合完成此操作。也许是这样的:
@implementation AppDelegate
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
if([[UIApplication sharedApplication] isRegisteredForRemoteNotifications]) {
// Show animation
}
else {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:<#notification type#>];
}
return YES;
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
// Show animation
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
// Show animation
}
@end