Configuración del color de tinte para la barra de UISearch incrustada en la barra de navigation

Tengo una aplicación que tiene un tema de tinte azul para toda la interfaz de usuario. También tengo una barra de búsqueda incrustada en la barra de navigation en mi vista inicial. El color de mi button de text para la aplicación es blanco y declaro que en el delegado de la aplicación usando:

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 

El problema es que esto hace que la barra de búsqueda incrustada oculte el cursor cuando se selecciona debido al tinte blanco que afecta a la barra de búsqueda. He intentado configurar específicamente el color de la barra de búsqueda en [UIColor blueColor] utilizando dos methods, pero no he tenido suerte. Las dos forms en que he intentado refrenar la barra de UISearch son:

  [self.navigationController.searchDisplayController.searchBar setTintColor:[UIColor blueColor]]; 

y

  [searchBar setTintColor:[UIColor blueColor]] 

El searchBar debe ser referencedo correctamente.

Nada de lo que hago en estos puntos de venta afecta en absoluto a la barra de búsqueda incrustada.

Tuvo el mismo problema. Lo resolvió usando este código después de incrustar la barra de búsqueda en la barra de navigation.

  self.navigationItem.titleView.tintColor = [UIColor blueColor]; 

Probablemente no sea la mejor solución, pero funciona.

En iOS 7 (y más allá, presumiblemente), probablemente querrás configurar barTintColor en tus barras de navigation y búsqueda para cambiar el color de la interfaz de usuario de ajuste.

 [searchBar setBarTintColor:[UIColor blueColor]] 

Para la misma apariencia, deseará usar barTintColor cuando barTintColor en iOS 7+ y use tintColor para cualquier cosa anterior. Si intenta cambiar tintColor en iOS 7, cambiará el color del cursor, lo que dará como resultado el problema del cursor "oculto" que menciona.

¡Diferencia entre tintColor y barTintColor en UISearchBar en iOS 7!

Si lo subclassa, también obtendrá la capacidad de controlar el statusBarStyle.

 import UIKit class SearchController: UISearchController { override func viewDidLoad() { super.viewDidLoad() searchBar.tintColor = UIColor.tintColor() searchBar.barTintColor = UIColor.backgroundColor() } override func prefernetworkingStatusBarStyle() -> UIStatusBarStyle { return .LightContent } } 

introduzca la descripción de la imagen aquí