gpt4 book ai didi

ios - 如何在带导航栏的模态视图中更改 iOS 7 中的 UIStatusBarStyle?

转载 作者:技术小花猫 更新时间:2023-10-29 10:40:31 27 4
gpt4 key购买 nike

iOS 7 Transition Guide给出一个很好的提示,如何使用

UIViewController 中动态更改 UIStatusBarStyle
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}

连同[self setNeedsStatusBarAppearanceUpdate];

这在单 View 应用程序中运行良好。但是,我现在正尝试将模态视图中的 UIStatusBarStyle 更改为 UIStatusBarStyleLightContent。有一个 MainViewController 连接到 ModalViewController,后者本身嵌入在 NavigationController 中。 ModalViewController 已将其委托(delegate)设置为 MainViewController

我尝试在 ModalViewController 中调用 [self setNeedsStatusBarAppearanceUpdate]; 以及该类中的以下方法,但没有效果:

// In ModalViewController.m
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}

我还尝试调用 [self setNeedsStatusBarAppearanceUpdate];MainViewControllerprepareForSegue: sender: 方法中,条件在 - ( UIStatusBarStyle)preferredStatusBarStyle {} 以在呈现模态视图时返回 UIStatusBarStyleLightContent - 但这也没有任何效果。

如何在模态视图中更改 UIStatusBarStyle?

编辑: 帖子更新:我需要提及的是,ModalViewController 嵌入到带有 NavigationBarNavigationController 中>。将 NavigationBar 设置为隐藏到 [self setNeedsStatusBarAppearanceUpdate];ModalViewController 中的上述调用工作正常。但不是在 Bar 可见时。

最佳答案

您需要一个全屏显示的 ViewController 来返回适当的状态栏信息。在您的情况下:包含 ModalViewController 的 NavigationController 需要实现 preferredStatusBarStyle 并返回 UIStatusBarStyleLightContent

仅当 View Controller 返回的值实际发生变化时,才需要调用 setNeedsStatusBarAppearanceUpdate。当 View Controller 首次呈现时,无论如何都会对其进行查询。

关于ios - 如何在带导航栏的模态视图中更改 iOS 7 中的 UIStatusBarStyle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18999019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com