ios - 为什么我的 View 仍然以横向呈现?

标签 ios swift uinavigationcontroller uiinterfaceorientation

我的 View 由导航 Controller 控制,所以我将导航 Controller 中支持的方向设置为显式纵向和纵向向上侧向下,这有效,但是如果调用 View 时前一个 View 处于横向,它将显示本身处于横向状态并保持横向状态直到设备旋转。我该如何防止这种情况发生?

这是我的代码:

class EditProfileViewController: UIViewController, UINavigationControllerDelegate

override func viewDidLoad() {
        super.viewDidLoad()

        navigationController?.delegate = self
}

func navigationControllerSupportedInterfaceOrientations(navigationController: UINavigationController) -> UIInterfaceOrientationMask {

    return [UIInterfaceOrientationMask.Portrait, UIInterfaceOrientationMask.PortraitUpsideDown]
}

我认为上一行会将 View 永久锁定为纵向,我该怎么做?

最佳答案

您可以在关闭之前将方向改回纵向:

UIDevice.current.setValue(UIInterfaceOrientation.portrait.rawValue, forKey: "orientation")

dismiss(animated: true) { _ in
    print("dismissed in Portrait mode")
}

关于ios - 为什么我的 View 仍然以横向呈现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32707641/

相关文章:

iphone - 使用 SBJSON 进行 JSON 解析和检查

ios - 如何确定我的 SIGTrap 崩溃的原因?

ios - 如何让 UIAnimation 一次执行一个(迭代 for 循环),而不是一次执行全部?

ios - Swift 为透明导航栏创建子类

iPhone。 UITableView 和推送 View Controller

iphone - 在 navigationController 上前后滑动

ios - 在 iOS 中摇动 tableviewcell

iphone - 如果我在不设置重命名标识符的情况下更改核心数据实体的名称,底层数据是否会丢失?

ios - 与数组匹配的 Swift 开关模式

ios - 如何截取 UIView 的一部分?