diff --git a/lib/ios/RNNNavigationButtons.m b/lib/ios/RNNNavigationButtons.m index 078c0138883..1a06c2c2865 100644 --- a/lib/ios/RNNNavigationButtons.m +++ b/lib/ios/RNNNavigationButtons.m @@ -73,23 +73,33 @@ - (NSArray *)currentButtons { } - (void)componentDidAppear { - for (RNNUIBarButtonItem* barButtonItem in [self currentButtons]) { - [barButtonItem notifyDidAppear]; + for (UIBarButtonItem* barButtonItem in [self currentButtons]) { + if ([self isRNNUIBarButton:barButtonItem]) { + [(RNNUIBarButtonItem *)barButtonItem notifyDidAppear]; + } } } - (void)componentDidDisappear { - for (RNNUIBarButtonItem* barButtonItem in [self currentButtons]) { - [barButtonItem notifyDidDisappear]; + for (UIBarButtonItem* barButtonItem in [self currentButtons]) { + if ([self isRNNUIBarButton:barButtonItem]) { + [(RNNUIBarButtonItem *)barButtonItem notifyDidDisappear]; + } } } - (void)notifyButtonsDidAppear:(NSArray *)barButtonItems { - for (RNNUIBarButtonItem* barButtonItem in barButtonItems) { - [barButtonItem notifyDidAppear]; + for (UIBarButtonItem* barButtonItem in barButtonItems) { + if ([self isRNNUIBarButton:barButtonItem]) { + [(RNNUIBarButtonItem *)barButtonItem notifyDidAppear]; + } } } +- (BOOL)isRNNUIBarButton:(UIBarButtonItem *)barButtonItem { + return [barButtonItem isKindOfClass:[RNNUIBarButtonItem class]]; +} + - (void)clearPreviousButtonViews:(NSArray *)newButtons oldButtons:(NSArray *)oldButtons { NSArray* removedButtons = [oldButtons difference:newButtons withPropertyName:@"customView"];