我正在使用UISearchController并将其搜索栏添加到表视图控制器的标题中:
我面临的问题是,当用户开始输入搜索栏,使其成为第一个响应者时,状态栏样式将恢复为.Default:
我正在使用preferredStatusBarStyle()
在视图控制器中设置样式。相反,如果我使用info.plist设置样式并另外将“基于视图控制器的状态外观”键设置为NO,则样式保持为Light。
但是,将“基于视图控制器的状态外观”键设置为“否”不是一个选项,因为我有一些需要默认样式的VC和一些需要灯光样式的VC。
我尝试将样式重置为搜索栏委托方法(当它成为第一响应者时被调用),即:
func searchBarShouldBeginEditing(searchBar: UISearchBar) -> Bool
{
UIApplication.sharedApplication().statusBarStyle = .LightContent
self.setNeedsStatusBarAppearanceUpdate()
return true
}
但这也不起作用。
有什么建议吗?
答案 0 :(得分:3)
我不知道是否有另一种方法,但我通过实现UISearchController派生类并使用它来解决它:
$notificationsNumber
或者如果正在使用导航控制器,那么这将阻止调用preferredStatusBarStyle(),在这种情况下使用它:
UIApplication.sharedApplication()。statusBarStyle = .LightContent
和
确保在info.plist中“查看基于控制器的状态栏外观”设置为NO。
答案 1 :(得分:0)
SWIFT 3.0更新
调用导航控制器时:
UIApplication.shared.statusBarStyle = .lightContent
(在viewDidLoad上)
+
在info.plist上设置View controller-based status bar appearance = NO