From 3c125e867f52efd7f18b2bd8c9a21b246afcd788 Mon Sep 17 00:00:00 2001 From: zhongwuzw Date: Mon, 29 Apr 2019 21:38:57 -0700 Subject: [PATCH] Call designated initializer for SurfaceHostingProxyRootView (#24368) Summary: 1. Call designated initializer for SurfaceHostingProxyRootView. 2. Make super class designated initializer `-initWithSurface:sizeMeasureMode:` `NS_UNAVAILABLE`. cc. shergin [iOS] [Fixed] - Call designated initializer for SurfaceHostingProxyRootView Pull Request resolved: https://github.com/facebook/react-native/pull/24368 Differential Revision: D15144991 Pulled By: shergin fbshipit-source-id: c999ac64c766242ceff157b0d9600190c1f3add8 --- .../SurfaceHostingView/RCTSurfaceHostingProxyRootView.h | 4 ++++ .../SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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, @"");