blob: f9d4add8178b862880b07042694367c8194c3c78 [file] [log] [blame]
// 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