diff --git a/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h b/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h index 702746dbd..3e329c4b7 100644 --- a/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +++ b/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h @@ -45,6 +45,10 @@ NS_ASSUME_NONNULL_BEGIN initialProperties:(NSDictionary *)initialProperties launchOptions:(NSDictionary *)launchOptions; +- (instancetype)initWithSurface:(RCTSurface *)surface + sizeMeasureMode:(RCTSurfaceSizeMeasureMode)sizeMeasureMode + NS_UNAVAILABLE; + - (void)cancelTouches; @end diff --git a/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm b/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm index 539e236bb..fabac4600 100644 --- a/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +++ b/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm @@ -67,9 +67,10 @@ static RCTRootViewSizeFlexibility convertToRootViewSizeFlexibility(RCTSurfaceSiz // `RCTRootViewSizeFlexibilityNone` is the RCTRootView's default. RCTSurfaceSizeMeasureMode sizeMeasureMode = convertToSurfaceSizeMeasureMode(RCTRootViewSizeFlexibilityNone); - if (self = [super initWithBridge:bridge moduleName:moduleName initialProperties:initialProperties sizeMeasureMode:sizeMeasureMode]) { + RCTSurface *surface = [[self class] createSurfaceWithBridge:bridge moduleName:moduleName initialProperties:initialProperties]; + [surface start]; + if (self = [super initWithSurface:surface sizeMeasureMode:sizeMeasureMode]) { self.backgroundColor = [UIColor whiteColor]; - [super.surface start]; } RCT_PROFILE_END_EVENT(RCTProfileTagAlways, @"");