我的导航栏有白色
BackgroundColor
,而我的状态栏使用Dark
TextColor
。当用户将iOS主题更改为暗模式时,状态栏将更改为白色
背景上的白色
文本。结果我什么也看不见。如何禁用应用程序的此更改?
UinavigationController
是UiviewController
的子类!(谁知道)
因此,当显示导航控制器中嵌入的视图控制器时,您并不是真正显示嵌入的视图控制器;你在展示导航控制器!UinavigationController
作为UiviewController
的子类,继承PreferredStatusBarstyle
和ChildforStatusBarstyle
,您可以根据需要设置它们。
以下任何一种方法都应该有效:
在UinavigationController
中重写PreferredStatusBarStyle
>
PreferredStatusBarStyle
(doc)-视图控制器的首选状态栏样式
子类
或扩展
UinAvigationController
class MyNavigationController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
.lightContent
}
}
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
.lightContent
}
}
ChildForStatusBarStyle
(doc)-当系统需要视图控制器用于确定状态栏样式时调用“如果容器视图控制器从其子视图控制器之一派生状态栏样式,则[重写此属性]并返回该子视图控制器。如果返回nil或不重写此方法,则使用self的状态栏样式。如果此方法的返回值发生更改,请调用SetNeedsStatusBarPapearanceUpdate()方法。”
>
换句话说,如果不在这里实现解决方案3,系统将回到上面的解决方案2。
class MyNavigationController: UINavigationController {
override var childForStatusBarStyle: UIViewController? {
topViewController
}
}
extension UINavigationController {
open override var childForStatusBarStyle: UIViewController? {
topViewController
}
}
您可以在上面返回任何您想要的视图控制器。我推荐以下其中之一:
TopViewController
(UinavigationController
)(doc)-导航堆栈顶部的视图控制器visibleviewController
(ofuinavigationController
)(doc)-与导航界面中当前可见视图关联的视图控制器(提示:这可以包括“以模式显示在导航控制器自身顶部的视图控制器”)注意:如果您决定子类UinavigationController
,请记住通过IB中的标识检查器将该类应用于导航控制器。
如何更改iPhone应用程序中标题部分(状态栏)的颜色。带有载体、时间和电池的部件。 这部分 更具体地说,这一部分。我想将UI从黑色改为白色或更容易看到的颜色。
我正在尝试将系统状态栏的颜色更改为黑色。配置似乎被AppBar类覆盖。我可以通过在创建材料应用程序时将主题分配给,然后指定一个来实现我想要的。但是我不想要AppBar,而且,这样做会改变所有字体的颜色。 一种可能的解决方案是继承主题数据。将bright()添加到一个新类中,然后通过 然后我需要指定AppBar并以某种方式使其不可见? 文档 主要的飞奔 布局工具。飞奔
问题内容: 我想更改状态栏的颜色以匹配我的应用背景,该怎么办? 问题答案: 可以通过将CNS项目目录下的colors.xml文件包含以下示例内容来实现: 在这种情况下,colorPrimaryDark是您要为状态栏着色的颜色
当我打开黑暗模式时,ImageView中的图像会从颜色变为白色。 我把一些croppe屏幕截图的图像,这样你就可以更好地理解。 我的图像在黑暗模式下是什么样子 当我打开黑暗模式时,图像的黑色变成了白色,白色变成了黑色。我该怎么办?
关于这个话题有很多帖子,但我找不到一个有用的。 我有一个未嵌入导航控制器的视图控制器。我想把状态栏的颜色改成黑色。 如何在Swift 3中设置状态栏样式 改变行info.plist查看基于控制器的状态栏外观并将其设置为NO didFinishLaunchingwith Options中appDelegate.swift的更改
问题内容: 我的应用程序具有深色背景,但是在iOS 7中状态栏变为透明的。所以我看不到任何东西,只有角落的绿色电池指示灯。如何将状态栏文本颜色更改为白色,就像在主屏幕上一样? 问题答案: 将要在文件的.plist。 在做一个 添加以下方法: { return UIStatusBarStyleLightContent; } 注意 :这不适用于内部控制器,请参阅下面的Tyson评论:) Swift 3