// Copyright 2018-present the Material Components for iOS authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #import #import "MaterialAppBar+ColorThemer.h" #import "MaterialAppBar.h" #import "MaterialAppBar+TypographyThemer.h" #import "MaterialFlexibleHeader.h" #import "MaterialColorScheme.h" #import "MaterialTypographyScheme.h" @interface WrappedDemoViewController : UIViewController @end @implementation WrappedDemoViewController - (void)viewDidLoad { [super viewDidLoad]; self.title = @"Wrapped App Bar"; self.view.backgroundColor = [UIColor colorWithWhite:(CGFloat)0.95 alpha:1]; UILabel *label = [[UILabel alloc] init]; label.text = @"Wrapped UIViewController"; [self.view addSubview:label]; [label sizeToFit]; label.center = self.view.center; } @end @interface AppBarWrappedExample : UIViewController @property(nonatomic, strong) MDCAppBarContainerViewController *appBarContainerViewController; @property(nonatomic, strong) MDCSemanticColorScheme *colorScheme; @property(nonatomic, strong) MDCTypographyScheme *typographyScheme; @end @implementation AppBarWrappedExample - (void)viewDidLoad { [super viewDidLoad]; WrappedDemoViewController *demoVC = [[WrappedDemoViewController alloc] init]; self.appBarContainerViewController = [[MDCAppBarContainerViewController alloc] initWithContentViewController:demoVC]; // Common behavioral flags. MDCAppBarViewController *appBarViewController = self.appBarContainerViewController.appBarViewController; appBarViewController.inferTopSafeAreaInsetFromViewController = YES; appBarViewController.headerView.minMaxHeightIncludesSafeArea = NO; self.appBarContainerViewController.topLayoutGuideAdjustmentEnabled = YES; [MDCAppBarColorThemer applyColorScheme:self.colorScheme toAppBarViewController:self.appBarContainerViewController.appBarViewController]; [MDCAppBarTypographyThemer applyTypographyScheme:self.typographyScheme toAppBarViewController:self.appBarContainerViewController.appBarViewController]; // Need to update the status bar style after applying the theme. [self setNeedsStatusBarAppearanceUpdate]; [self addChildViewController:self.appBarContainerViewController]; self.appBarContainerViewController.view.frame = self.view.bounds; [self.view addSubview:self.appBarContainerViewController.view]; [self.appBarContainerViewController didMoveToParentViewController:self]; } - (UIViewController *)childViewControllerForStatusBarStyle { return self.appBarContainerViewController; } @end @implementation AppBarWrappedExample (CatalogByConvention) + (NSDictionary *)catalogMetadata { return @{ @"breadcrumbs" : @[ @"App Bar", @"Wrapped" ], @"primaryDemo" : @NO, @"presentable" : @YES, }; } - (BOOL)catalogShouldHideNavigation { return YES; } @end