На текущем UIViewController
на экране необходимо ответить на push-уведомления из APN, установив несколько видов значков. Но как я могу получить UIViewController
в методе application:didReceiveRemoteNotification
: из AppDelegate.m
?
Я попытался использовать self.window.rootViewController
для получения текущего отображения UIViewController
, это может быть UINavigationViewController
или какой-либо другой вид контроллера. И я узнаю, что свойство visibleViewController
UINavigationViewController
можно использовать для получения UIViewController
на экране. Но что я мог сделать, если это не UINavigationViewController
?
Любая помощь приветствуется! Связанный код выглядит следующим образом.
AppDelegate.m
...
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
//I would like to find out which view controller is on the screen here.
UIViewController *vc = [(UINavigationViewController *)self.window.rootViewController visibleViewController];
[vc performSelector:@selector(handleThePushNotification:) withObject:userInfo];
}
...
ViewControllerA.m
- (void)handleThePushNotification:(NSDictionary *)userInfo{
//set some badge view here
}