热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何通过darkModeiOS13禁用更改statusBartextColor

如何解决《如何通过darkModeiOS13禁用更改statusBartextColor》经验,为你挑选了2个好方法。

我将whilebackgroundColor NavigationBardarktextColor用于statusBar,但是当用户将主题iOS更改为深色时,我的textColor statusBar更改为while,而while我的backgroundColor上NavigationBar则看不到任何东西。如何为我的应用禁用此更改?



1> Andrew Kirna..:

iOS 13解决方案

UINavigationControllerUIViewController(谁知道的)的子类!

因此,在呈现嵌入在导航控制器中的视图控制器时,您并不是真正在呈现嵌入式视图控制器。您正在展示导航控制器!UINavigationController,作为的子类UIViewController继承preferredStatusBarStylechildForStatusBarStyle,您可以根据需要设置。

以下任何一种方法都可以工作:

    完全退出黑暗模式

    在中info.plist,添加以下属性:

    键- UIUserInterfaceStyle(又名“用户界面样式”)

    价值-轻

    preferredStatusBarStyle在内部覆盖UINavigationController

    preferredStatusBarStyle(doc)-视图控制器的首选状态栏样式

    子类或扩展 UINavigationController

    class MyNavigationController: UINavigationController {
        override var preferredStatusBarStyle: UIStatusBarStyle {
            .lightContent
        }
    }
    

    要么

    extension UINavigationController {
        open override var preferredStatusBarStyle: UIStatusBarStyle {
            .lightContent
        }
    }
    

    childForStatusBarStyle在内部覆盖UINavigationController

    childForStatusBarStyle(doc)-在系统需要视图控制器来确定状态栏样式时调用

    根据Apple的文件,

    “如果您的容器视图控制器从其子视图控制器之一派生其状态栏样式,请[覆盖此属性]并返回该子视图控制器。如果您返回nil或不重写此方法,则使用self的状态栏样式如果此方法的返回值发生更改,请调用setNeedsStatusBarAppearanceUpdate()方法。”

    换句话说,如果您未在此处实现解决方案3,则系统将退回到上述解决方案2。

    子类或扩展 UINavigationController

    class MyNavigationController: UINavigationController {
        override var childForStatusBarStyle: UIViewController? {
            topViewController
        }
    }
    

    要么

    extension UINavigationController {    
        open override var childForStatusBarStyle: UIViewController? {
            topViewController
        }
    }
    

    您可以返回上面想要的任何视图控制器。我建议以下之一:

    topViewController(of UINavigationController)(doc)-导航堆栈顶部的视图控制器

    visibleViewController(of UINavigationController)(doc)-与导航界面中当前可见视图相关联的视图控制器(提示:这可以包括“以模态形式显示在导航控制器本身顶部的视图控制器”)

注意:如果决定子类化UINavigationController,请记住通过IB中的身份检查器将该类应用于导航控制器。

PS我的代码使用Swift 5.1语法



2> Frank Schleg..:

如果您将UIViewControllerBasedStatusBarAppearance应用程序的密钥设置info.plistYES,则可以在当前显示的视图控制器中覆盖状态栏样式:

override var preferredStatusBarStyle: UIStatusBarStyle {
    if #available(iOS 13, *) {
        return .darkContent
    } else {
        return .default
    }
}


推荐阅读
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • C++语言入门:数组的基本知识和应用领域
    本文介绍了C++语言的基本知识和应用领域,包括C++语言与Python语言的区别、C++语言的结构化特点、关键字和控制语句的使用、运算符的种类和表达式的灵活性、各种数据类型的运算以及指针概念的引入。同时,还探讨了C++语言在代码效率方面的优势和与汇编语言的比较。对于想要学习C++语言的初学者来说,本文提供了一个简洁而全面的入门指南。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 这篇文章主要讲解了“如何应对Android面试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何应对 ... [详细]
  • 1、DashAPI文档Dash是一个API文档浏览器,使用户可以使用离线功能即时搜索无数API。程序员使用Dash可访问iOS,MacOS, ... [详细]
  • elixirerlang通过AyandaDubeFIPS(联邦信息处理标准)[1]是由NIST(美国国家标准技术研究院)定义 ... [详细]
  • 于2012年3月份开始接触OpenStack项目,刚开始之处主要是与同事合作共同部署公司内部的云平台,使得公司内部服务器能更好的得到资源利用。在部署的过程中遇到各种从未遇到过的问题 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了Python函数的定义与调用的方法,以及函数的作用,包括增强代码的可读性和重用性。文章详细解释了函数的定义与调用的语法和规则,以及函数的参数和返回值的用法。同时,还介绍了函数返回值的多种情况和多个值的返回方式。通过学习本文,读者可以更好地理解和使用Python函数,提高代码的可读性和重用性。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
  • 微信答题小程序的设计与实现详解
    本文详细介绍了如何设计和实现一个微信答题小程序,包括题库的设计和题目的呈现。通过抽取题目编号和使用全局变量记录当前题目的信息,实现了题目的刷新和显示。同时,还介绍了题目的展示方式和容器的创建。本文适合零基础的小白学习微信答题小程序的开发。 ... [详细]
  • Python的参数解析argparse模块的学习
    本文介绍了Python中参数解析的重要模块argparse的学习内容。包括位置参数和可选参数的定义和使用方式,以及add_argument()函数的详细参数关键字解释。同时还介绍了命令行参数的操作和可接受数量的设置,其中包括整数类型的参数。通过学习本文内容,可以更好地理解和使用argparse模块进行参数解析。 ... [详细]
  • java.lang.Class.getDeclaredMethod()方法java.lang.Class.getDeclaredMethod()方法用法实例教程-方法返回一个Met ... [详细]
author-avatar
黄于諭春琪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有