需要帮助修复某些 UIViewControllers 的方向

Posted

技术标签:

【中文标题】需要帮助修复某些 UIViewControllers 的方向【英文标题】:Need help fixing orientation for certain UIViewControllers 【发布时间】:2016-11-12 13:02:07 【问题描述】:

我正在构建一个包含多个屏幕的视频应用程序,我希望所有这些屏幕都只允许纵向除了视频播放器屏幕可以手动从纵向切换到横向。 p>

现在我在视频播放器屏幕中有以下内容

#pragma mark - CHANGE ORIENTATION METHODS


- (void)changeOrientation 

NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];


然后在列表屏幕中,我尝试将方向固定为仅纵向。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

return (interfaceOrientation == UIInterfaceOrientationPortrait);

现在,当我加载应用程序时,它似乎将方向设置为纵向,问题出在视频播放器屏幕上,我有一个后退按钮。如果该屏幕处于横向模式并且我单击返回

shouldAutorotateToInterfaceOrientation

没有被调用并且卡在横向模式。

如何强制它调用上述方法,或者有更好的方法来解决这个问题?谢谢

【问题讨论】:

【参考方案1】:

您可以尝试以编程方式强制更改方向:

-(void)viewWillAppear:(BOOL)animated 
   NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
   [[UIDevice currentDevice] setValue:value forKey:@"orientation"];

当然,您需要在项目目标->部署信息->设备方向中启用横向。希望对你有帮助。

【讨论】:

以上是关于需要帮助修复某些 UIViewControllers 的方向的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Objective-C 修复 UIViewController 中的页脚?

在模态显示的 UIViewController 中使用 UITableView 时的奇怪行为

uiViewController 中的 uiTableView:缺少某些东西

为啥 xcode 中 uiviewcontroller 的顶部有间隙?

UIScrollView 中的 UIToolbar 修复了 UIViewController 作为子视图滚动问题

swift Swift - 修复键盘隐藏UITextFieldimport UIKit类WelcomeViewController:UIViewController,UITextFieldDeleg