Open hufeisun21 opened 5 years ago
请问这个问题有解决办法吗?
这个应该只能靠你原来的页面来控制了...
你app的页面是支持横屏的吗
遇到同样的问题,我在其它vc都做了控制了,但是present到你这个vc的时候 需要横竖屏,此时如果横屏,然后dismiss回穷上个vc的时候,我上个vc也横屏了; 个人验证过我present一个普通的vc是不会的,猜想这里是因为框架的present自定义动画引起的。
嗯,这个问题尽快解决
嗯,这个问题尽快解决
麻烦解决了,在这里说一声。我还在等待。
捂脸🤦♂️...我想想
我复现不了你说的问题,能做个Demo复现给我看吗? 你的项目里确保外层容器(UINavigationController, UITabBarController)是禁止了吗?
override var shouldAutorotate: Bool {
return false
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
请问问题解决了嘛?
使用Demo时,将AppDelegate
的UINavigationController
改为自定义的导航控制器,并且再里面写上
override var shouldAutorotate: Bool { return false } override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return .portrait }
就会造成,图片浏览界面横屏时,其他主界面也会横屏,并且旋转不过来
感谢反馈,我看下
我定位到是因为modalPresentationStyle = .custom
的原因。
我猜测是苹果设计如此,自定义转场的时候,前控制器的视图依然留在视图栈层,所以要与当前控制器同时旋转,这也是合理的。
这个可能无解,我各种尝试都找不到办法禁止前控制器跟随旋转。
折中方案的话,或者可以在回去前控制器后,viewWillAppear时,强制把屏幕旋转到希望的方向。
同一个 UINavigationController
里的所有 UIViewController
都继承自一个 BaseViewController
,在里面讲方向锁定为竖屏,然后将 UINavigationController
的方向返回值改为 topViewController
的方向值即可解决。
PS:由于屏幕为横屏,页面只支持竖屏,所以要在旋转时,将底部的 UIViewController
内部的 view 进行旋转。
控制器是禁止横屏的。 override var supportedInterfaceOrientations: UIInterfaceOrientationMask{ return .portrait }
但是点击图片present后,图片可以横屏,点击返回控制器后。控制器也成横屏了。 请问下这个怎么解决