| // 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 "MainViewController.h" |
| |
| #import "AppDelegate.h" |
| #import "FullScreenViewController.h" |
| |
| @interface MainViewController () |
| |
| @property(nonatomic, strong) UIStackView* stackView; |
| |
| @end |
| |
| |
| @implementation MainViewController |
| |
| - (void)viewDidLoad { |
| [super viewDidLoad]; |
| |
| [self.view setFrame:self.view.window.bounds]; |
| self.title = @"Flutter iOS Demos"; |
| self.view.backgroundColor = UIColor.whiteColor; |
| |
| self.stackView = [[UIStackView alloc] initWithFrame:self.view.frame]; |
| self.stackView.axis = UILayoutConstraintAxisVertical; |
| self.stackView.distribution = UIStackViewDistributionEqualSpacing; |
| self.stackView.alignment = UIStackViewAlignmentCenter; |
| self.stackView.autoresizingMask = |
| UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; |
| self.stackView.layoutMargins = UIEdgeInsetsMake(0, 0, 50, 0); |
| self.stackView.layoutMarginsRelativeArrangement = YES; |
| [self.view addSubview:_stackView]; |
| |
| [self addButton:@"Full Screen (Cold)" action:@selector(showFullScreenCold)]; |
| } |
| |
| - (void)showFullScreenCold { |
| FlutterEngine *engine = |
| [(AppDelegate *)[[UIApplication sharedApplication] delegate] engine]; |
| |
| FullScreenViewController *flutterViewController = |
| [[FullScreenViewController alloc] initWithEngine:engine |
| nibName:nil |
| bundle:nil]; |
| [self.navigationController |
| pushViewController:flutterViewController |
| animated:NO]; // Animating this is janky because of |
| // transitions with header on the native side. |
| // It's especially bad with a cold engine. |
| } |
| |
| - (void)addButton:(NSString *)title action:(SEL)action { |
| UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; |
| [button setTitle:title forState:UIControlStateNormal]; |
| [button addTarget:self |
| action:action |
| forControlEvents:UIControlEventTouchUpInside]; |
| [self.stackView addArrangedSubview:button]; |
| } |
| |
| @end |