适用于iOS的UIBarButtonItem-Badge
我正在使用此控件在barbuttonitem上显示徽章。 它适用于导航控制器堆栈中的第一个控制器或根控制器。 在推送到另一个控制器时,我试图显示徽章,我看不到任何效果。
您应该首先在viewDidLayoutSubviews
设置badgeValue。 在这种情况下,它会出现并且不会闪烁,就像在viewDidAppear
设置它一样:
- (void)viewDidLayoutSubviews { barButton.badgeValue = @"5"; }
建议不要在viewDidLayoutSubviews
设置navigationItem
,因为它不是语义的。
您的问题的关键是徽章视图被添加到[UIBarButtonItem valueForKey:@"view"]
,但是当初始化UIBarButtonItem
时, valueForKey:@"view"
尚不存在,因此添加徽章失败。
我建议你试试QMUIBadge ,它可以解决你的问题。
UIBarButtonItem *rightItem = [[UIBarButtonItem alloc] init]; rightItem.qmui_badgeInteger = 1;// number rightItem.qmui_badgeString = @"99+";// or string // setRightBarButtonItem any time self.navigationItem.rightBarButtonItem = rightItem;