ViewController Containment - 子 ViewController 在横向中未正确调整大小
Posted
技术标签:
【中文标题】ViewController Containment - 子 ViewController 在横向中未正确调整大小【英文标题】:ViewController Containment - Child ViewController not sizing correctly in Landscape 【发布时间】:2014-05-26 11:39:28 【问题描述】:应用设置为仅支持横向模式。
自定义的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
) 的视图框架仍设置为肖像的尺寸。
我是否遗漏了什么,所以在子视图控制器的视图上设置了正确的帧大小?
【问题讨论】:
【参考方案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 值。
【讨论】:
以上是关于ViewController Containment - 子 ViewController 在横向中未正确调整大小的主要内容,如果未能解决你的问题,请参考以下文章
将图像从 ViewController 传递到 ViewController
ViewController 将结果返回给调用它的 ViewController [重复]
你如何将数据从 ViewController 传递到包含单独 ViewController 的 PageViewController,然后这些 ViewController 将使用这些数据?
需要从另一个viewController调用其他viewController中的方法