We can control custom native UI components\' properties by exporting native properties using RCT_EXPORT_VIEW_PROPERTY.
But how to export instance method
I'm not an Objective C expert but a Swift developer.
I better use this way just for readability (maybe there are drawbacks in Obj-C?):
Obj-C side - component manager:
@implementation RNAnalogClockManager {
RNAnalogClock* _AnalogClock;
}
RCT_EXPORT_MODULE()
- (UIView *)view
{
// keep a reference to the view before returning it
_AnalogClock = [[RNAnalogClock alloc] init];
return _AnalogClock;
}
// export method and easily call view method
RCT_EXPORT_METHOD(startRealTime) {
[_AnalogClock startRealTime];
};
JS side remains the same
NOTE: I don't need callback in my example but it does not change the principle it is just another parameter.