es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Xcode 13 – Cambio del color del texto de la barra de navegación y la barra de estado en Swift OS 15

Recientemente actualicé mi Xcode a la versión 13 y después de eso, estoy enfrentando algunos problemas con la barra de navegación y la barra de estado. Estoy utilizando la barra de pestañas en mi controlador de vista. Después de actualizar el Xcode, de acuerdo con la versión, agregué algún código relacionado con la barra de navegación.

if #available(iOS 15.0, *) {
     tableView.sectionHeaderTopPadding = 0

     let appearance = UINavigationBarAppearance()
     appearance.configureWithOpaqueBackground()
     appearance.backgroundColor = UIColor(red: 58/255,green: 24/255, blue: 93/255, alpha: 1.0)
     appearance.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]

     // Personalizando nuestra barra de navegación
     navigationController?.navigationBar.tintColor = .white
     navigationController?.navigationBar.barTintColor = .white
     navigationController?.navigationBar.standardAppearance = appearance
     navigationController?.navigationBar.scrollEdgeAppearance = appearance
}

Todo funciona cuando abro la aplicación por primera vez. Pero cuando hago clic en otra pestaña y luego en esta pestaña, el color del texto de la barra de estado cambia.

Imagen 1

Imagen 2

He intentado diferentes formas de establecer el color del texto de la barra de estado, pero nada ha funcionado para mí.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución para el problema de la barra de navegación y la barra de estado en Xcode 13

    Después de actualizar a Xcode 13 y agregar código relacionado con la barra de navegación, el color del texto de la barra de estado cambia al cambiar entre pestañas. Para resolver este problema, necesitamos establecer explícitamente el estilo de la barra de estado para cada pestaña.

    Para establecer el estilo de la barra de estado para una pestaña en particular, agregue el siguiente código en los controladores de vista respectivos de cada pestaña:

    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent // o .darkContent
    }
    

    Esto establecerá que el color del texto de la barra de estado sea consistente en todas las pestañas.

    Si la solución anterior no funciona, intente establecer el estilo de la barra de estado en el método viewDidLoad de cada controlador de vista:

    override func viewDidLoad() {
        super.viewDidLoad()
    
        if #available(iOS 13.0, *) {
            let statusBar = UIView(frame: UIApplication.shared.statusBarFrame)
            statusBar.backgroundColor = UIColor(red: 58/255, green: 24/255, blue: 93/255, alpha: 1.0)
            view.addSubview(statusBar)
        } else {
            let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView
            statusBar?.backgroundColor = UIColor(red: 58/255, green: 24/255, blue: 93/255, alpha: 1.0)
        }
    
        // Otro código de configuración del controlador de vista...
    }
    

    Este código volverá a establecer que el color del texto de la barra de estado sea consistente en todas las pestañas. Ajuste los valores de color según sus necesidades.

    Al implementar estas soluciones, podemos solucionar el problema de la barra de navegación y la barra de estado en Xcode 13.

Comments are closed.