2014-11-07 4 views
3

Я попытался установить badgeValue для UITabBarItem, когда получено push-уведомление. Я использую этот код. Здесь UITabBarController не является rootViewController. Я пробовал то же самое в режиме смиренного активного, но там тоже не работает.Установленный значок на элементе табеля при получении уведомления

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 

    UITabBarController *tabBarController = (UITabBarController *)[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"tabBarController"] ; 
    [[tabBarController.tabBar.items objectAtIndex:2] setBadgeValue:@"1"]; 

} 
+0

Вы должны изучить управление объектами и создание. Вы пытаетесь установить значок на 'UITabBarItem' нового' UITabBarController', созданного вами из раскадровки. Также читайте 'NSNotification'. Это поможет вам понять, как его реализовать. –

ответ

3

Я думаю, что вы можете использовать NSNotificationCenter, чтобы получить возможность отправлять уведомление, когда вы получили remoteNotification

В вашем UITabBarController методе инициализации

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myNotificationReceived:) name:@"pushNotification" object:nil]; 

И В myNotificationReceived:

[[self.tabBar.items objectAtIndex:2] setBadgeValue:@"1"]; 

Когда Вы получите дистанционное оповещение

[[NSNotificationCenter defaultCenter] postNotificationName:@"pushNotification" object:nil userInfo:userInfo]; 

Таким образом, вы можете получить полную информацию RemoteNotification

+0

Когда приложение находится на переднем плане, пользователь может находиться на любом экране, использовать центр уведомлений, мне нужно добавить наблюдателя для всех экранов, могу ли я достичь этого без наблюдателей. – Bot

+0

Вы просто добавляете наблюдателя в UITabbarController, вы можете получить доступ к любому диспетчеру просмотра в UITabbarController с помощью self.viewControllers.This вернет массив viewController в UITabbarController. – Leo

+0

Спасибо, должен я подкласса uiTabBarController для получения уведомления. – Bot