diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm index 25fa3f708d2..07aabfc6c50 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterAppDelegate.mm @@ -214,7 +214,11 @@ // TODO(xster): move when doing https://github.com/flutter/flutter/issues/3671. - (NSObject*)binaryMessenger { - return self.rootFlutterViewController; + UIViewController* rootViewController = _window.rootViewController; + if ([rootViewController conformsToProtocol:@protocol(FlutterBinaryMessenger)]) { + return (NSObject*)rootViewController; + } + return nil; } - (NSObject*)registrarForPlugin:(NSString*)pluginKey {