UIViewController 不响应旋转功能

Posted

技术标签:

【中文标题】UIViewController 不响应旋转功能【英文标题】:UIViewController does not respond to rotation function 【发布时间】:2016-03-14 11:13:18 【问题描述】:

我在导航控制器中嵌入了一个视图控制器,

在我的视图控制器中,我已经定义了函数,

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator

我也在函数内部这样做,

[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

但是当我在我的设备上运行它时,呼叫永远不会到达这里?我在这里做错了什么?

【问题讨论】:

NavigationController 适当地接收到该调用 但是我已经使用故事板将它嵌入到默认导航控制器中。 你到底想做什么?设备旋转时执行自己的代码? 【参考方案1】:

如果调用从未到达函数,请检查此方法supportedInterfaceOrientations

可能其他界面方向被屏蔽了。

【讨论】:

我应该在我的视图控制器中检查这个,但我的视图控制器默认嵌入在导航控制器中 在导航控制器或appDelegate中检查该功能 我继承了UINavigationController类并将supportedInterfaceOrientations设置为UIOrientationMaskAll,调用仍然没有到达! 好的。旋转设备时屏幕会旋转吗? 是的,屏幕会旋转【参考方案2】:

如果你想旋转视图,你也可以使用这个方法来做到这一点

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
       return YES;

【讨论】:

以上是关于UIViewController 不响应旋转功能的主要内容,如果未能解决你的问题,请参考以下文章

根 ViewController 内的 UIViewController 不旋转

旋转的 UIView 变得无响应

UIViewController 遏制 - 新孩子不知道旋转

强制旋转 UIViewController

UIViewController 可能不响应 showRootPopoverButtonItem

UIResponder响应链