| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #import "AppDelegate.h" |
| #import "GeneratedPluginRegistrant.h" |
| #import "PlatformViewController.h" |
| |
| @implementation AppDelegate { |
| FlutterResult _flutterResult; |
| } |
| |
| - (BOOL)application:(UIApplication *)application |
| didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
| [GeneratedPluginRegistrant registerWithRegistry:self]; |
| FlutterViewController* controller = |
| (FlutterViewController*)self.window.rootViewController; |
| FlutterMethodChannel* channel = |
| [FlutterMethodChannel methodChannelWithName:@"samples.flutter.io/platform_view" |
| binaryMessenger:controller]; |
| [channel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult result) { |
| if ([@"switchView" isEqualToString:call.method]) { |
| _flutterResult = result; |
| PlatformViewController* platformViewController = |
| [controller.storyboard instantiateViewControllerWithIdentifier:@"PlatformView"]; |
| platformViewController.counter = ((NSNumber*)call.arguments).intValue; |
| platformViewController.delegate = self; |
| UINavigationController* navigationController = |
| [[UINavigationController alloc] initWithRootViewController:platformViewController]; |
| navigationController.navigationBar.topItem.title = @"Platform View"; |
| [controller presentViewController:navigationController animated:NO completion:nil]; |
| } else { |
| result(FlutterMethodNotImplemented); |
| } |
| }]; |
| return [super application:application didFinishLaunchingWithOptions:launchOptions]; |
| } |
| |
| - (void)didUpdateCounter:(int)counter { |
| _flutterResult([NSNumber numberWithInt:counter]); |
| } |
| |
| @end |