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.

UIkit AppDelegate: aplicar estilo cuando se inicia la aplicación

Estoy intentando crear una aplicación utilizando UIKit y necesito aplicar un tema específico una vez que mi aplicación se lance. Lo hago en el método application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?), pero cuando utilizo Theme.apply(to: application.windows.first!), la aplicación se bloquea con el mensaje “Valor inesperadamente nulo mientras se desenvuelve un valor opcional”.

Si elimino la línea Theme.apply, todo funciona bien ya que mi storyboard se carga y veo mi controlador de pestañas. ¿Cómo puedo obtener la ventana a la que debo aplicar mi tema?

Estoy siguiendo el tutorial en https://nsscreencast.com/episodes/382-podcast-app-setup-theming?series=17, pero está un poco desactualizado, ya que fue escrito para Xcode 10.

¡Muchas gracias de antemano!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para capturar la ventana de tu aplicación, puedes utilizar el siguiente fragmento de código dentro del método application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?):

    guard let window = UIApplication.shared.windows.first else {
        fatalError("No se encontró ninguna ventana")
    }
    Theme.apply(to: window)
    

    Al utilizar guard let, primero verificamos si podemos desempaquetar el valor opcional de la ventana. Si es nulo, la aplicación se bloqueará con el mensaje de error “No se encontró ninguna ventana”. Si no es nulo, entonces podemos aplicar de forma segura nuestro tema a la ventana.

Comments are closed.