如何只允许导航堆栈中的一个视图旋转?
我的导航堆栈上有 ViewController A 和 B。 A 不支持横向,B 支持。如果用户在查看 B 时旋转到横向,然后点击“后退”按钮,则 A 现在处于横向状态。我该如何防止这种情况? A 的 shouldAutorotateToInterfaceOrientation 方法不被尊重是否有充分的理由?
I have ViewControllers A and B on the navigation stack. A does not support landscape orientation, B does. If the user rotates to landscape while viewing B and then taps the Back button, A is now in landscape. How do I prevent this? Is there a good reason the shouldAutorotateToInterfaceOrientation method of A is not respected?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于视图控制器来说,这确实是非常烦人的事情。而且似乎无法修复自动旋转。也许,最好的办法是从 B 的 shouldAutorotateToInterfaceOrientation 返回 NO,然后手动执行视图旋转。那么就不会影响A了。
This is really very annoying thing about view controllers. And It seems to be no fix for autorotation. Maybe, the best would be return NO from B's shouldAutorotateToInterfaceOrientation and then perform view rotation manually. Then it won't affect A.
是的,我也讨厌这样……
我发现解决这个问题的方法就是自己做:
当您导航到 A.view 时,您可以在主/超级 UIViewController 中调用 myAutomaticRotation,
在同一个地方,您应该使用:
您可以在其中检查使用的视图(A,B)并仅允许 B 的横向模式...
卢卡
yes, i hate that too...
all i found to solve it was to do it by myself:
you can call myAutomaticRotation in a main/super UIViewController when you navigate to A.view,
and in that same place you should use:
where you can check the view used (A,B) and allowing landscape mode just for B...
luca