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

时间:2016-11-12 13:02:07

标签: ios objective-c

我正在构建一个包含多个屏幕的视频应用程序,我希望所有这些屏幕只允许使用之外的视频播放器屏幕,可以手动从纵向转换为横向。

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

#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 个答案:

答案 0 :(得分:0)

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

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

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