- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
有没有办法在保持 UIViewControllerBasedStatusBarAppearance
启用的同时设置默认状态栏样式?
这是我正在处理的问题:
几乎整个应用程序都需要使用 UIStatusBarStyle.LightContent
,因为导航栏的背景是深色的。最初,UIViewControllerBasedStatusBarAppearance
被禁用,在 Info.plist
中为 while text status 状态栏设置了以下内容:
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
直到我发现这个 .LightContent
状态栏甚至对于某些共享扩展(如 Facebook Messenger)也会显示,导致它不可读:
这可以通过使用 UIViewControllerBasedStatusBarAppearance
来解决,但是我需要将以下方法添加到所有 View Controller 中,因为应用程序非常大,所以我想避免这样做。
此外,对于应用程序中具有浅色导航栏背景的一个屏幕,我使用 UIApplication.sharedApplication().setStatusBarStyle()
切换到深色导航栏,但此方法在 iOS 中已弃用9.
有什么解决办法吗?调酒?
最佳答案
实现这一点的最简单和最简洁的方法是在 AppDelegate
的 application:willFinishLaunchingWithOptions
方法中添加以下行:
UINavigationBar.appearance().barStyle = .Black
这将使 .LightContent
作为整个应用程序的默认状态栏样式,只要您的应用程序使用 UINavigationController
。
如果要在启动屏幕期间使用 .LightContent
状态栏样式,请不要忘记在应用程序的 Info.plist
中保留以下设置:
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
我当前的设置与许多其他应用非常相似,使用 UITabBarController
作为最顶层的 Controller ,每个选项卡都有 UINavigationController
堆栈。
UINavigationController
负责状态栏样式(它应该如此)并且不在其 subview Controller 上调用 preferredStatusBarStyle()
。因此,实现 subclassing solution proposed by par在我的情况下不起作用。
进一步继承UINavigationController
的自定义子类I'm using也不是一个干净的解决方案。
现在,由于该应用程序启用了 UIViewControllerBasedStatusBarAppearance
并且在应用程序本身的任何地方都更正了状态栏样式,因此 SFSafariViewController
和消息、邮件等共享扩展使用正确的 ( .Default
) 状态栏样式。
唯一没有使用正确状态栏样式的异常(exception)是问题中提到的 Facebook Messenger 的共享扩展。然而,这似乎是扩展本身的一个错误,因为我尝试过的所有使用 .LightContent
状态栏样式的应用程序(例如 Twitter)都有相同的问题 - 提供的 FB Messenger 共享扩展来自该应用程序有一个带有白色文本的状态栏。
关于iOS:带有 UIViewControllerBasedStatusBarAppearance 的默认状态栏样式 YES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41895965/
这个问题在这里已经有了答案: NSNumber Literals (5 个答案) 关闭 6 年前。 我正在发出一个 HTTP 请求,我必须在其中发送一个 bool 值。我试过他们两个。 两者的工作方
我使用 FireBug 测试了这两种情况,结果看起来非常相似: >>> var x = {"active": "yes"} >>> x.active "yes" >>> var x = {active
在 Objective-c 中,@YES/@NO 和 YES/NO 有什么区别?每种类型使用什么类型? 最佳答案 @YES 是 [NSNumber numberWithBool:YES] 的缩写形式
我正在编写一个脚本来创建虚拟机,显然我想支持标准的确认/whatif 语义。但是,如果我要创建多台机器,最好能区分"is"和“全部是”,这样我就不必重新确认每台机器。 $pscmdlet.Should
这个问题在这里已经有了答案: In JavaScript, why is "0" equal to false, but when tested by 'if' it is not false by
我需要编写一个正则表达式来验证字符串。如果正则表达式包含以下任何内容,则应传递字符串:y、Y、yes、YES , 1。这些字母可以是任何大小写。我是正则表达式和 JavaScript 的新手。 最佳答
我是网络开发的新手,如果能得到任何帮助,我将不胜感激。我有一个 HTML/CSS slider ,当 slider 处于"is"位置(如名字和主题)时,我想显示更多的文本框字段。如果可能的话,我真的希
bash: $: yes a [some output] then press Ctrl+Z $: yes b [some output] then press Ctrl+Z 然后,执行两
我感兴趣的是能够在 Yes/No 提示符下自动让我的 cmd 输入 Yes: __
以上说明了一切-我将 UITextField 设置为安全,但希望为用户提供使其不安全的选项(因此,如果他们在私有(private)区域中,他们可以确定输入的内容)。但是,假设他们误按了切换开关,并想将
当 ssh hostname 提示 The authenticity of host 'foobar' can't be established. ECDSA key fingerprint is .
如何在自定义 MKAnnotationView 上正确设置半径并允许标注?这会引发异常: 来 self 的自定义 MKAnnotationView 类: - (id)initWithFrame:(CG
如果我有 1200 行,并且我希望我的 120 行说"is"而其余的说“否”,我应该如何将其应用于 Excel 文件?我知道使用: =CHOOSE(RANDBETWEEN(1,2),"Yes","No
我想进行一个查询,返回如下所示的表结果: 列标题是我的一个表格中的字段,下面的数字是该字段的是/否条目数。 我遇到的问题是在行的开头显示是/否。我希望它以这种方式组织,以便更好地根据数据创建图表。 现
这个问题在这里已经有了答案: Literal @YES not working in iOS 5 / Xcode 4.4 (2 个答案) 关闭 7 年前。 使用 XCode 4.4 的 Conver
这段代码: $query = array( "var" => "no", "not_var" => "yes", "var2" => "maybe" ); print http
在我的 Dynamics CRM 机会表单中,我添加了销售配额分配网格。如果在整个网格中输入了四个以上"is",我希望显示一条警告消息(或类似的内容)。例如,假设记录“A”t 有 4 个标记为"is"
This question already has answers here: How do I perform an IF…THEN in an SQL SELECT? (31个答案) 已关闭6年。
考虑以下文档: foo: bar: Yes 根据the spec,这应该解释为Boolean,而不是String。 但是,it seems对此文档产生了相同的解释: foo: bar: 'Ye
在网页的第一页上,它要求用户从下拉列表中选择他们想要的产品类型,并且为每个产品指定一个值 0,1,2...然后,一旦他们继续,他们就会被发送到不同的网页,并根据他们选择的产品在那里我希望单选按钮自动选
我是一名优秀的程序员,十分优秀!