Voici ce qui a fini par fonctionner pour moi.
CreateContact.h :
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
#import "RCTBridgeModule.h"
@interface CreateContact : NSObject <ABNewPersonViewControllerDelegate, RCTBridgeModule>
@end
CreateContact.m :
#import "CreateContact.h"
#import "AppDelegate.h"
@implementation CreateContact
RCT_EXPORT_MODULE(CreateContact);
RCT_EXPORT_METHOD(presentContact) {
dispatch_async(dispatch_get_main_queue(), ^{
ABNewPersonViewController *picker = [[ABNewPersonViewController alloc] init];
picker.newPersonViewDelegate = self;
UINavigationController* contactNavigator = [[UINavigationController alloc] initWithRootViewController:picker];
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate.window.rootViewController presentViewController:contactNavigator animated:NO completion:nil];
});
}
- (void)newPersonViewController:(ABNewPersonViewController *)newPersonViewController didCompleteWithNewPerson:(ABRecordRef)person
{
[newPersonViewController dismissViewControllerAnimated:YES completion:nil];
}
@end
Ce tutoriel est plus détaillé : http://moduscreate.com/leverage-existing-ios-views-react-native-app/
Je mettrai à jour les informations au fur et à mesure que je mettrai en place la meilleure façon de communiquer les informations à RN.