首页 > 解决方案 > 再次从模型当前关闭恢复状态栏样式

问题描述

我有一个主视图控制器-> 状态栏样式很轻。因为我有一个按钮来打开用户联系人。我以当前模式打开,并将状态栏样式更改为深色。但是在关闭时(通过向下滑动),在我的主 vc 中,我的状态栏样式仍然处于黑暗状态。它应该会自动变亮。但这并没有发生。

我的代码:

let navVC = UINavigationController(viewController: VC)
navVC.modalPresentationCapturesStatusBarAppearance = true
present(navVC, animated: true, completion: completion)

但是从我打开的联系人 vc (present modal) 中,用户可以再打开两个 vc 作为模型。所以我的 vc 层次结构将是 -> Home --> opencontactvc (present)。-> shownumbervc(现在)-> seeuserphotoVC(现在)

如果我从 seeuserphotoVC 中解散,我不需要更改我的状态栏。只有当我在 opencontactvc 中时,我才需要更改我的状态栏。所以它会登陆家庭vc,那个时候我需要改变我的状态栏。

我的公开联系人 vc :

override var preferredStatusBarStyle: UIStatusBarStyle {
    if #available(iOS 13.0, *) {
        if traitCollection.userInterfaceStyle == .light {
            return .darkContent
        } else {
            return .lightContent
        }
    } else {
        return .lightContent
    }
}

override func viewDidDisappear(_ animated: Bool) {
    super.viewDidDisappear(animated)
    setNeedsStatusBarAppearanceUpdate()
}

在关闭时(向下滑动),不确定为什么它没有改变。因为当我向下滑动以关闭我的 viewwillAppear 时不会接到电话。所以不知道如何处理。我们可以将其设置为自动

标签: iosswiftiphonexcodeios13

解决方案


检查您的 info.plistUIViewControllerBasedStatusBarAppearance并尝试切换它,看看它是否修复它。也看看他的回答

问候!


推荐阅读