Установить значок на втором справа налево большинство UIBarButtonItem в Objective-C - PullRequest
0 голосов
/ 03 ноября 2018

При наличии уведомлений я устанавливаю значок для кнопки уведомлений, который является одним из трех потенциальных элементов кнопки правой панели.

При отсутствии уведомлений кнопка уведомлений должна отображаться и не отображается вообще. Когда есть уведомления, я хочу, чтобы кнопка отображалась в середине двух других кнопок со значком. Это работало, когда у меня было только две потенциальные кнопки. Однако теперь я добавил третью кнопку, которая должна быть самой левой из двух или трех правых кнопок, и значок появляется не там, где я хочу, в середине (кнопка уведомлений), а на самой правой кнопке.

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

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;

}

Может кто-нибудь подсказать, как указать, что значок следует вставлять в среднюю кнопку, а не в крайнюю правую.

...