【问题标题】:UISearchBar changing status bar color to whiteUISearchBar 将状态栏颜色更改为白色
【发布时间】:2015-03-05 17:04:55
【问题描述】:

我有一个 UISearchBar 并且出于某种奇怪的原因,每当在状态栏上点击搜索栏时,颜色就会从黑色变为白色。我不希望状态栏颜色改变。有任何想法吗?谢谢。

【问题讨论】:

  • 包含这个UISearchBarUIViewController的结构是什么?
  • @mbm29414 “结构”是什么意思?
  • 它是在标准UIViewController 中添加的UISearchBar 吗?是UISearchDisplayController吗?试图了解代码可能会去哪里设置UIStatusBarStyle
  • 与@mbm29414 一致。查看Search Bar appearance
  • @mbm29414 啊,它在UITableViewControllerUISearchBarDelegate 中。谢谢

标签: ios objective-c iphone swift uisearchbar


【解决方案1】:

接受的答案here 似乎表明UISearchBar 在开始编辑时向其“父”UINavigationController 发送了一个调用。

因此,您似乎有两个选择:

  1. 您可以简单地为您的UINavigationController 覆盖tintColor UITableViewController,或者

  2. 您可以编写一个简单的UINavigationController 子类来覆盖-preferredStatusBarStyle,返回所需的样式。

看起来 #1 以最少的麻烦/代码为您提供所需的东西。

【讨论】:

  • 我认为您可以从任何视图控制器覆盖preferredStatusBarStyle,它可以直接访问,无需子类化。
  • @LouisTur 根据我的经验,这不是真的,但我愿意试一试。
  • 我正在从包含在 UINavigationController 中的 UIViewController 覆盖 preferredStatusBarStyle,它就像一个魅力。
【解决方案2】:

我的方法如下:

self.definesPresentationContext = YES;

并实现这个功能:

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleDarkContent;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-16
    • 2017-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多