Ios 全屏查看图片时解锁方向

Ios 全屏查看图片时解锁方向,ios,swift,uitableview,uiimageview,orientation,Ios,Swift,Uitableview,Uiimageview,Orientation,我的UITableViewCell中有一个UIImageView。当用户点击UIImageView时,将从UIImageView显示[IDMPhotoBrowser]()。该应用程序只是纵向的,但是,当在IDMPhotoBrowser中查看全屏照片时,我想让用户能够旋转到任何方向 IDMPhotoBrowser显示在UITableViewCell的委托上。该代理是一个常规的UIViewController,具有UITableView。委托还包含在uitabarcontroller中的UINavi

我的
UITableViewCell
中有一个
UIImageView
。当用户点击
UIImageView
时,将从
UIImageView
显示
[IDMPhotoBrowser]
()。该应用程序只是纵向的,但是,当在IDMPhotoBrowser中查看全屏照片时,我想让用户能够旋转到任何方向

IDMPhotoBrowser
显示在
UITableViewCell的委托上。该代理是一个常规的
UIViewController
,具有
UITableView
。委托还包含在
uitabarcontroller
中的
UINavigationController
中。我尝试过许多不同的解决方案,包括扩展
IDMPhotoBrowser
并尝试添加支持所有方向的功能,我尝试过在
uitabarcontroller
上、在
UINavigationController
代理UIViewController
上演示
IDMPhotoBrowser
。我还尝试翻转
UITabBarController
子类中的布尔值,然后在请求支持方向的函数中引用该布尔值,以便支持的方向随应用程序显示
IDMPhotoBrowser
时的变化而变化。什么都没起作用


除了用户在全屏上查看
IDMPhotoBrowser
avplayervicewcontroller
时,整个应用程序需要仅限于纵向。在您的UINavigationController(父级)内创建UINavigationController父级,通过以下方式覆盖这些方法:

override func shouldAutorotate() -> Bool {
    return true
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return self.topViewController.supportedInterfaceOrientations
}
在VC中,您希望旋转:

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .All
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .AllButUpsideDown
}
在VC中,您不希望旋转:

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .All
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return .AllButUpsideDown
}

然后在此导航控制器中推送(或设置为根VC等)您的浏览器或浏览器的父VC。

视图控制器需要支持UIInterfaceOrientationTask。
。这段代码是如何实现的?此代码始终支持所有方向。编辑答案,继续使用导航控制器并在该导航控制器中推送ViewController。因此,您的意思是让
UINavigationController
子类支持所有界面方向,然后让
ViewController
只支持纵向,然后按下
IDMPhotoBrowser
,让它支持所有界面方向?我认为,当UIViewController将其支持的接口方向与其UINavigationController相交时,这将起作用,但是,IDMPhotoBrowser是显示的,而不是推送的。因此,因为只支持纵向的
ViewController
,将显示IDMPhotoBrowser,IDMPhotoBrowser不是简单地从VC继承了只支持纵向的吗?我也尝试过将IDMPhotoBrowser包装在UINavigationController中,然后展示UINavigationController,这解决了整个方向问题,但是UIImageView从UITableViewCell动画到全屏的动画查看器被破坏了。您也可以像在navigationController:override func SupportedInterfaceOrientions()->UIInterfaceOrientationTask{return self.topViewController.SupportedInterfaceOrientions}中那样执行此操作。在VC中,有时您可以拥有所有,有时您只能拥有肖像等。您找到了解决此问题的方法吗?