我正在使用UIBarButtonItem-Badge。在情节提要徽章中创建UIBarButtonItem
时,可以正常显示。但是当以编程方式创建UIBarButtonItem
时,不会显示徽章。
以下是我的代码:
@property UIBarButtonItem *pendingRequestButton;
viewDidLoad方法:
- (void)viewDidLoad {
_pendingRequestButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"PendingRequestBarButtonItemImage_filled"] style:UIBarButtonItemStylePlain target:self action:@selector(pendingRequestButtonAction:)];
[self.navigationItem setLeftBarButtonItem:_pendingRequestButton animated:YES];
}
viewDidAppear方法:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[_pendingRequestButton setBadgeValue:[NSString stringWithFormat:@"%ld",[[[UserDefaultsManager sharedManager] objectForKey:@"panding_requests_count"] integerValue]]];
[_pendingRequestButton setBadgeBGColor:[UIColor yellowColor]];
[_pendingRequestButton setBadgeTextColor:[UIColor whiteColor]];
}
有人能帮我解决这个问题吗?
提前感谢!
发布于 2018-08-23 20:38:05
在objective c中尝试此方法
self.tabBarController?.tabBarItem.badgeColor = UIColor.red self.tabBarController?.tabBarItem.badgeValue = "12“
发布于 2018-08-23 20:52:22
我想我发现了问题所在,您似乎忘记了在viewDidLoad的导航项目中添加工具栏按钮。
self.navigationItem.leftBarButtonItem = _pendingRequestButton;
发布于 2018-08-23 22:02:42
如here所述,这是UIBarButtonItem-徽章和iOS 11之间的兼容性问题
https://stackoverflow.com/questions/51985351
复制相似问题