mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
55 lines
1.8 KiB
Objective-C
55 lines
1.8 KiB
Objective-C
// Copyright 2017 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.Copyright © 2017 The Chromium Authors. All rights reserved.
|
|
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "MainViewController.h"
|
|
#import "NativeViewController.h"
|
|
|
|
@interface MainViewController ()
|
|
|
|
@property (nonatomic) NativeViewController* nativeViewController;
|
|
@property (nonatomic) FlutterViewController* flutterViewController;
|
|
@property (nonatomic) FlutterBasicMessageChannel* messageChannel;
|
|
@end
|
|
|
|
static NSString* const emptyString = @"";
|
|
static NSString* const ping = @"ping";
|
|
static NSString* const channel = @"increment";
|
|
|
|
@implementation MainViewController
|
|
|
|
- (NSString*) messageName {
|
|
return channel;
|
|
}
|
|
|
|
- (void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender {
|
|
|
|
if ([segue.identifier isEqualToString: @"NativeViewControllerSegue"]) {
|
|
self.nativeViewController = segue.destinationViewController;
|
|
self.nativeViewController.delegate = self;
|
|
}
|
|
|
|
if ([segue.identifier isEqualToString:@"FlutterViewControllerSegue"]) {
|
|
self.flutterViewController = segue.destinationViewController;
|
|
|
|
self.messageChannel = [FlutterBasicMessageChannel messageChannelWithName:channel
|
|
binaryMessenger:self.flutterViewController
|
|
codec:[FlutterStringCodec sharedInstance]];
|
|
|
|
MainViewController* __weak weakSelf = self;
|
|
[self.messageChannel setMessageHandler:^(id message, FlutterReply reply) {
|
|
[weakSelf.nativeViewController didReceiveIncrement];
|
|
reply(emptyString);
|
|
}];
|
|
}
|
|
}
|
|
|
|
- (void)didTapIncrementButton {
|
|
[self.messageChannel sendMessage:ping];
|
|
}
|
|
|
|
@end
|