diff --git a/React/Views/RCTPickerManager.m b/React/Views/RCTPickerManager.m index 4838710940d..401010befbc 100644 --- a/React/Views/RCTPickerManager.m +++ b/React/Views/RCTPickerManager.m @@ -10,6 +10,7 @@ #import "RCTBridge.h" #import "RCTPicker.h" #import "RCTFont.h" +#import @implementation RCTPickerManager @@ -42,4 +43,22 @@ RCT_CUSTOM_VIEW_PROPERTY(fontFamily, NSString, RCTPicker) view.font = [RCTFont updateFont:view.font withFamily:json ?: defaultView.font.familyName]; } +RCT_EXPORT_METHOD(setNativeSelectedIndex : (nonnull NSNumber *)viewTag toIndex : (NSNumber *)index) +{ + [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { + UIView *view = viewRegistry[viewTag]; + + if ([view isKindOfClass:[RCTPicker class]]) { + [(RCTPicker *)view setSelectedIndex:index.integerValue]; + } else { + UIView *subview = view.subviews.firstObject; + if ([subview isKindOfClass:[RCTPicker class]]) { + [(RCTPicker *)subview setSelectedIndex:index.integerValue]; + } else { + RCTLogError(@"view type must be RCTPicker"); + } + } + }]; +} + @end