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.

Cómo puedo pasar una función a través de un interruptor de SwiftUI

Variable de estado:

@State var toggleIsOn = false

Toggle:

Toggle(isOn: $toggleIsOn, label: {Text("Notificaciones")})

Quiero los siguientes botones para representar cada estado del toggle, encendido y apagado:

                // Solicitará enviar notificaciones, si tiene éxito; las programará.
                Button("solicitar") {
                    NotificationManager.instance.requestAuthorization()
                }
                // Eliminará la cola de notificaciones y cualquier notificación entregada.
                Button("cancelar") {
                    NotificationManager.instance.cancelNotifications()
                }

Encontré las funciones en este video: https://www.youtube.com/watch?v=mG9BVAs8AIo

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el resultado deseado, puedes usar una instrucción switch con la variable “toggleIsOn” como expresión condicional. Aquí te mostramos un ejemplo de código:

    @State var toggleIsOn = false
    
    var body: some View {
        VStack {
            Toggle(isOn: $toggleIsOn, label: {Text("Notificaciones")})
    
            switch toggleIsOn {
            case true:
                Button("Solicitar") {
                    NotificationManager.instance.requestAuthorization()
                    NotificationManager.instance.scheduleNotifications()
                }
            case false:
                Button("Cancelar") {
                    NotificationManager.instance.cancelNotifications()
                }
            }
        }
    }
    

    En el código anterior, cuando se activa el interruptor, se muestra el botón “Solicitar”, que llama a las funciones “requestAuthorization()” y “scheduleNotifications()” cuando se presiona. Cuando el interruptor se desactiva, se muestra el botón “Cancelar”, que llama a la función “cancelNotifications()” cuando se presiona.

    Ten en cuenta que puede que necesites modificar el código para adaptarlo a la implementación específica de “NotificationManager” en tu proyecto.

Comments are closed.