viewWill在没有导航视图控制器的presentViewController时显示错误的方向

时间:2015-03-19 13:19:14

标签: ios cocoa-touch uiviewcontroller uiinterfaceorientation

我遇到了一个奇怪的问题,我在风景中呈现VC

SomeViewController * vc = [[SomeViewController alloc] init];
[self.navigationController presentViewController:vc animated:YES completion:^{

}];

viewWillAppear 框架中的图片不正确,在viewDidAppear正确处于横向

但当我把它放在UINavigationController

中时
SomeViewController * vc = [[SomeViewController alloc] init];
UINavigationController * nc = [[UINavigationController alloc] initWithRootViewController:vc];

[self.navigationController presentViewController:nc animated:YES completion:^{

}];

而不是viewWillAppear 框架正确横向

这是一个错误吗?我错过了什么?为什么会出现这样的行为?

1 个答案:

答案 0 :(得分:0)

我认为这是设计,请参阅此答案A: View frame changes between viewWillAppear: and viewDidAppear:

通过viewDidAppear框架几何图形是正确的,因为它现在在屏幕上并添加到视图层次结构中,但我实际上建议在viewDidLayoutSubviews中执行它,因为在旋转方向时也会调用它