При наличии уведомлений я устанавливаю значок для кнопки уведомлений, который является одним из трех потенциальных элементов кнопки правой панели.
При отсутствии уведомлений кнопка уведомлений должна отображаться и не отображается вообще. Когда есть уведомления, я хочу, чтобы кнопка отображалась в середине двух других кнопок со значком. Это работало, когда у меня было только две потенциальные кнопки. Однако теперь я добавил третью кнопку, которая должна быть самой левой из двух или трех правых кнопок, и значок появляется не там, где я хочу, в середине (кнопка уведомлений), а на самой правой кнопке.
Я использую категорию, которая обрабатывает вставку значка, известного как
UIBarButtonItem+Badge
Вот мой код:
-(void) updateNotificationsButton {
NSMutableArray *buttonsToShow;
NSInteger badgeInt =[[NSUserDefaults standardUserDefaults] integerForKey:@"badgeInt"];
if (badgeInt>=1) {
buttonsToShow = [NSMutableArray arrayWithObjects:myBarButton,notificationButton,searchButton, nil];
} else {
buttonsToShow = [NSMutableArray arrayWithObjects:myBarButton, searchButton,nil]; }
[self.navigationItem setRightBarButtonItems:buttonsToShow animated:YES];
NSString *onebadgestring= [NSString stringWithFormat: @"%li",badgeInt];
NSString *badgestring = [@(badgeInt) stringValue];
self.navigationItem.rightBarButtonItem.badgeValue = badgestring;
}
Может кто-нибудь подсказать, как указать, что значок следует вставлять в среднюю кнопку, а не в крайнюю правую.