/** * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ #import "RCTModalHostViewController.h" @implementation RCTModalHostViewController { CGRect _lastViewFrame; UIStatusBarStyle _preferredStatusBarStyle; BOOL _preferredStatusBarHidden; } - (instancetype)init { if (!(self = [super init])) { return nil; } _preferredStatusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; _preferredStatusBarHidden = [[UIApplication sharedApplication] isStatusBarHidden]; return self; } - (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; if (self.boundsDidChangeBlock && !CGRectEqualToRect(_lastViewFrame, self.view.frame)) { self.boundsDidChangeBlock(self.view.bounds); _lastViewFrame = self.view.frame; } } - (UIInterfaceOrientationMask)supportedInterfaceOrientations { // Picking some defaults here, we should probably make this configurable if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) { return UIInterfaceOrientationMaskAll; } else { return UIInterfaceOrientationMaskPortrait; } } - (UIStatusBarStyle)preferredStatusBarStyle { return _preferredStatusBarStyle; } - (BOOL)prefersStatusBarHidden { return _preferredStatusBarHidden; } @end