UISearchBar 将状态栏颜色更改为白色

UISearchBar changing status bar color to white

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

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

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

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

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

看起来 #1 可以用最少的 fuss/code 满足您的需求。

我的方法如下:

self.definesPresentationContext = YES;

并实现这个功能:

- (UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleDarkContent;
}