我有一个非常简单的场景,对我不起作用。我有一个带有两个视图控制器的故事板:
ViewController1
- ViewA
- ViewB
ViewController2
- ViewC
我的ViewController1
按预期工作,当我旋转设备时,视图会根据我定义的自动布局正确调整。
我的ViewController2
有自由格式大小(768x722),我取消选中“从笔尖调整视图大小”选项。
这是我的ViewController1
didLoad
- (void)viewDidLoad
{
[super viewDidLoad];
UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc2 = [story instantiateViewControllerWithIdentifier:@"vc2"];
[self addChildViewController:vc2];
[vc2 didMoveToParentViewController:self];
[self.viewA addSubview:vc2.view];
}
当我从被调用的- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
方向旋转设备ViewControlled2
时,它会显示正确的方向。但是,ViewC
不会自行调整大小,也不会遵循我的自动布局设置。
任何人都知道如何修复?我只想在ViewController2
内添加ViewA
并保持自动布局适用于ViewController2
的观看次数。我只需要iOS 7的解决方案,因此不需要与早期版本兼容。
任何人都可以帮助我?
答案 0 :(得分:7)
我找到了解决方案,我会在这里注册,以防有人需要它。
我创建了一个UIViewController属性来保存我的ViewController2。之后,我添加了以下方法:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
self.vc2.view.frame = self.viewA.bounds;
}