react-native/React/Views/RCTModalHostViewController.m

62 lines
1.5 KiB
Objective-C

/**
* 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