^上面根本没有答案...在导航控制器内的特定(不是全部)视图控制器禁用自动旋转时遇到问题。类似的问题并不涉及禁用特定视图控制器的自动旋转的能力,而是涉及禁用导航控制器内所有视图控制器的自动旋转的能力。我的导航控制器包含一些我想要自动旋转的 VC 和其他我不想自动旋转的 VC。现有的问题还没有令人满意地回答这个问题。
我制作了一个关于如何执行此操作的示例项目:GitHub 仓库 https://github.com/zzzel/DontRotateSwift.
虽然@Sidetalker 的答案是正确的,但我认为它缺乏一些解释。
基本上,您为您创建一个自定义类UINavigationController
并将其分配给UINavigationController
在故事板中。在风俗中UINavigationController
给你上课override
the shouldAutorotate
功能并检查是否topViewController
is ViewController
(你的班级UIViewController
在 Storyboard 中)您想要禁用自动旋转的类。
在定制中UINavigationController
:
override func shouldAutorotate() -> Bool {
if !viewControllers.isEmpty {
// Check if this ViewController is the one you want to disable roration on
if topViewController!.isKindOfClass(ViewController) {
// If true return false to disable it
return false
}
}
// Else normal rotation enabled
return true
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)