Fix badgeColor for previous iOS 10 versions
Summary: The actual badgeColor prop causes the following error when run on device with a version inferior to iOS 10 like iPad 2 and iPad mini 1. `*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITabBarItem setBadgeColor:]: unrecognized selector sent to instance 0x7968be80'` This PR fixes it by checking at runtime if the selector is available for the current running version. It also makes the color available at start by using the variable `self.barItem`. Currently, the color appears only after a reload. Closes https://github.com/facebook/react-native/pull/12354 Differential Revision: D4598036 Pulled By: shergin fbshipit-source-id: 9f104fc27db51213a54273e33c5a22f1b350c55e
This commit is contained in:
parent
13edf6da2b
commit
ca2741609a
|
@ -107,9 +107,10 @@ RCT_ENUM_CONVERTER(UITabBarSystemItem, (@{
|
|||
|
||||
- (void)setBadgeColor:(UIColor *)badgeColor
|
||||
{
|
||||
#if !TARGET_OS_TV && defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
|
||||
_barItem.badgeColor = badgeColor;
|
||||
#endif
|
||||
// badgeColor available since iOS 10
|
||||
if ([self.barItem respondsToSelector:@selector(badgeColor)]) {
|
||||
self.barItem.badgeColor = badgeColor;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIViewController *)reactViewController
|
||||
|
|
Loading…
Reference in New Issue