2015-09-24 2 views
0

В объективе c я использовал сторонний чат sdk для создания программного обеспечения IM, у меня есть главный viewController и еще один чат viewController, а сторонний чат sdk имеет функция делегата, которая может проверить, получаю ли я сообщение или нет. Какая функция:Как сделать UANavigationItem справа на номер значка номер значка справа сразу после изменения номера

- (void)onRCIMReceiveMessage:(RCMessage *)message left:(int)left {} 

enter image description here

В ViewController А, я в состоянии выполнить функцию выше. Поэтому в этой функции я

- (void)onRCIMReceiveMessage:(RCMessage *)message left:(int)left { 
    self.navigationItem.leftBarButtonItem.badgeValue = @"2"; 
    [self.view setNeedsDisplay]; 
} 

но проблема ViewController А не меняется вообще, только после того, как я нажимаю кнопку ViewController B и обратно она будет меняться, так как я могу обновить навигационную baritembutton в ViewController сам.

ответ

0

Я думаю, вы хотите обновить элемент левой кнопки и не правы.

self.navigationItem.leftBarButtonItem.badgeValue = @"2"; 
+0

Да, жаль, что это просто опечатка, но до сих пор не работает – user2507194

+0

Я предполагаю, что вы используете пользовательский пункт навигации, чтобы иметь 'свойство badgeValue'. Не могли бы вы поместить точку прерывания в свой метод 'drawRect' и проверить, вызвана ли она вызовом' [self.view setNeedsDisplay ]'. – Abhinav

+0

@Abinav это не входит в эту функцию. – user2507194

Смежные вопросы