transparente para navegacion color cambiar bootstrap barra ios swift uinavigationbar uibarbuttonitem backbarbuttonitem

ios - para - cambiar color barra de navegacion huawei



Cambiar el color del botón Atrás en la barra de navegación (24)

Swift 4.2

Cambiar el tema completo de la aplicación

self.navigationController?.navigationBar.tintColor = UIColor.red

Cambiar controlador específico

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. UINavigationBar.appearance().tintColor = .white return true }

Estoy tratando de cambiar el color del botón Configuración a blanco, pero no puedo cambiarlo.

He intentado ambos:

navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor() navigationItem.backBarButtonItem?.tintColor = UIColor.whiteColor()

pero sin cambios, todavía se ve así:

¿Cómo hago que ese botón sea blanco?


Agregue el siguiente código a la función didFinishLaunchingWithOptions en AppDelegate.swift

var navigationBarAppearace = UINavigationBar.appearance() navigationBarAppearace.tintColor = uicolorFromHex(0xffffff) // White color navigationBarAppearace.barTintColor = uicolorFromHex(0x034517) // Green shade // change navigation item title color navigationBarAppearace.titleTextAttributes =[NSForegroundColorAttributeName:UIColor.whiteColor()]


Deberías agregar esta línea

self.navigationController?.navigationBar.topItem?.backBarButtonItem?.tintColor = .black


Deberías usar esto:

navigationController?.navigationBar.barTintColor = .purple navigationController?.navigationBar.tintColor = .white


En Swift3 , para establecer el botón Atrás en red .

let navController = UINavigationController.init(rootViewController: yourViewController) navController.navigationBar.tintColor = .red present(navController, animated: true, completion: nil)


En Swift 4, puede solucionar este problema utilizando:

let navStyles = UINavigationBar.appearance() // This will set the color of the text for the back buttons. navStyles.tintColor = .white // This will set the background color for navBar navStyles.barTintColor = .black


Este código cambia el color de la flecha.

self.navigationController.navigationBar.tintColor = UIColor.whiteColor();

Si esto no funciona, use el siguiente código:

self.navigationBar.barStyle = UIBarStyle.Black self.navigationBar.tintColor = UIColor.whiteColor()

Swift 3 Notas

UIColor.whiteColor() y similares se han simplificado a UIColor.white

Además, muchas opciones opcionales previamente implícitas se han cambiado a explícitas, por lo que puede necesitar:

self.navigationController?.navigationBar =


Muy fácil de configurar en el guión gráfico:


No estoy seguro de por qué nadie ha mencionado esto ... pero estaba haciendo exactamente lo que estaba haciendo en mi viewDidLoad ... y no estaba funcionando. Luego puse mi código en viewWillAppear y todo funcionó.

La solución anterior es cambiar un solo elemento barbuttonItem. Si desea cambiar el color de cada barra de navegación en su código, siga esta respuesta .

Básicamente, cambiar a la clase usando la appearance() es como hacer un cambio global en todas las instancias de esa vista en su aplicación. Para más información ver here


Para Swift 2.0, para cambiar el color de tinte de la barra de navegación , el texto del título y el color de tinte del botón Atrás cambiaron usando lo siguiente en AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. //Navigation bar tint color change UINavigationBar.appearance().barTintColor = UIColor(red: 42/255.0, green: 140/255.0, blue: 166/255.0, alpha: 0.5) //Back button tint color change UINavigationBar.appearance().barStyle = UIBarStyle.Default UINavigationBar.appearance().tintColor = UIColor(red: 204/255.0, green: 255/255.0, blue: 204/255.0, alpha: 1) //Navigation Menu font tint color change UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor(red: 204/255.0, green: 255/255.0, blue: 204/255.0, alpha: 1), NSFontAttributeName: UIFont(name: "OpenSans-Bold", size: 25)!]//UIColor(red: 42/255.0, green: 140/255.0, blue: 166/255.0, alpha: 1.0) UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent return true }


Prefiero el NavigationController personalizado en lugar de configurar la interfaz de usuario global, o ponerlo en ViewController.

Aqui esta mi solucion

class AppNavigationController : UINavigationController { override func viewDidLoad() { super.viewDidLoad() self.delegate = self } override func viewWillAppear(_ animated: Bool) { } } extension AppNavigationController : UINavigationControllerDelegate { func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) { let backButtonItem = UIBarButtonItem( title: " ", style: UIBarButtonItem.Style.plain, target: nil, action: nil) backButtonItem.tintColor = UIColor.gray viewController.navigationItem.backBarButtonItem = backButtonItem } func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) { } }

Además, no necesita meterse con Apple Api como EKEventEditViewController , PickerViewController , etc. , si usa la configuración global ui como UIBarButtonItem.appearance().tintColor = .white


Probemos este código:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. let navigationBarAppearace = UINavigationBar.appearance() navigationBarAppearace.tintColor = UIColor.whiteColor() // Back buttons and such navigationBarAppearace.barTintColor = UIColor.purpleColor() // Bar''s background color navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] // Title''s text color self.window?.backgroundColor = UIColor.whiteColor() return true }


Puede cambiar el color de tinte global en su guión gráfico haciendo clic en un espacio vacío en el tablero y seleccionando en la barra de herramientas derecha "Mostrar el inspector de archivos", y verá en la parte inferior de la barra de herramientas la opción "Tinte global".


Puedes usar como este. Colóquelo dentro de AppDelegate.swift .

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Override point for customization after application launch. UINavigationBar.appearance().translucent = false UINavigationBar.appearance().barTintColor = UIColor(rgba: "#2c8eb5") UINavigationBar.appearance().tintColor = UIColor.whiteColor() UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName:UIColor.whiteColor()] return true }


Rápido

override func viewDidLoad() { super.viewDidLoad() self.navigationController?.navigationBar.tintColor = UIColor.white }


Se resolverá con esta línea en - (vacío) viewDidLoad:

self.navigationItem.backBarButtonItem.tintColor = UIColor.whiteColor;


Si ya tiene el botón de retroceso en su controlador de vista "Configuración" y desea cambiar el color del botón de retroceso en el controlador de vista "Información de pago" a otra cosa, puede hacerlo dentro del controlador de vista "Configuración" para prepararse de esta manera. :

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "YourPaymentInformationSegue" { //Make the back button for "Payment Information" gray: self.navigationItem.backBarButtonItem?.tintColor = UIColor.gray } }


Tiene una opción: ocultar su botón de retroceso y hacerlo con usted mismo. Luego establece su color.

Yo lo hice:

self.navigationItem.setHidesBackButton(true, animated: true) let backbtn = UIBarButtonItem(title: "Back", style:UIBarButtonItemStyle.Plain, target: self, action: "backTapped:") self.navigationItem.leftBarButtonItem = backbtn self.navigationItem.leftBarButtonItem?.tintColor = UIColor.grayColor()


Todas las respuestas configuran UINavigationBar.appearance().tintColor conflicto con la documentación de Apple en UIAppearance.h .

Nota para iOS7: en iOS7, la propiedad tintColor ha movido a UIView , y ahora tiene un comportamiento heredado especial descrito en UIView.h . Este comportamiento heredado puede entrar en conflicto con el proxy de apariencia y, por tintColor tanto, tintColor ahora no está permitido con el proxy de apariencia.

En Xcode, debe hacer clic en cada propiedad que desee usar con el proxy de apariencia para inspeccionar el archivo de encabezado y asegurarse de que la propiedad esté anotada con UI_APPEARANCE_SELECTOR .

Entonces, la forma correcta de colorear la barra de navegación de color púrpura y el título y los botones de color blanco en toda la aplicación a través del proxy de apariencia es:

UINavigationBar.appearance().isTranslucent = false UINavigationBar.appearance().barTintColor = .purple UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white] UIBarButtonItem.appearance().tintColor = .white

Tenga en cuenta que UIBarButtonItem no es una subclase de UIView sino más bien NSObject . Por lo tanto, su propiedad tintColor no es el tintColor heredado de UIView .

Desafortunadamente, UIBarButtonItem.tintColor no está anotado con UI_APPEARANCE_SELECTOR , pero eso me parece un error de documentación. La respuesta de Apple Engineering en este radar indica que es compatible.


Use este código en la clase AppDelegate , dentro de didFinishLaunchingWithOptions .

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { UINavigationBar.appearance().tintColor = .white }


en uso rápido 2.0

self.navigationController!.navigationBar.tintColor = UIColor.whiteColor();


Swift 3

La respuesta más votada no es correcta para Swift 3.

El código correcto para cambiar de color es:

self.navigationController?.navigationBar.tintColor = UIColor.white

Si desea cambiar el color, cambie UIColor.white arriba al color deseado


self.navigationController.navigationBar.tintColor = [UIColor whiteColor];

Esto funciona para mí, iOS 9.0+


self.navigationController?.navigationBar.tintColor = UIColor.redColor()

Este fragmento hace la magia. En lugar de redColor, cámbielo como desee.