该应用程序设置为仅支持横向模式。
自定义UIViewController
包含以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
MBMainViewController *mainViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MBMainViewController"];
[self addChildViewController:mainViewController];
[self.view addSubview:mainViewController.view];
[mainViewController didMoveToParentViewController:self];
self.mainViewController = mainViewController;
}
启动应用时,子视图控件(mainViewController
)视图的框架仍设置为纵向尺寸。
我是否遗漏了某些内容,因此在子视图控件的视图中设置了正确的帧大小?
答案 0 :(得分:1)
这显然只发生在从故事板中实例化的UIViewController。在这种情况下,它仅在我们设置属于子视图控制器的视图的autoresizingMask
时才有效:
- (void)viewDidLoad {
[super viewDidLoad];
MBMainViewController *mainViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MBMainViewController"];
// Set the autoresizingMask as a fix
mainViewController.view.autoresizingMask = UIViewAutoResizingFlexibleWidth | UIViewAutoResizingFlexibleHeight;
[self addChildViewController:mainViewController];
[self.view addSubview:mainViewController.view];
[mainViewController didMoveToParentViewController:self];
self.mainViewController = mainViewController;
}
我的猜测是,当你从故事板中实例化一个视图控制器时,已经设置了约束,或者没有使用正确的autoresizingMask值。