Programación en Swift y SwiftUI para iOS Developers

Como mostrar un alert con SwiftUI

En SwiftUI, Alert es una vista, un popup que aparece al usuario con un título, mensaje y un botón. Los botones se agregaron para que el usuario interactue con esta vista y podamos conocer su opción.

En SwiftUI Alert es una vista, un popup que aparece al usuario con un título, mensaje y un botón. Los botones se agregaron para que el usuario interactue con esta vista y podamos conocer su opción. Podemos mostrar este popup en diferentes situaciones de uso, como si queremos que el usuario confirme si realmente desea salir de nuestra app.

Código fuente de Alert

Usar un alert en SwiftUI requiere el modificador .alert.

Este modifier espera dos parámetros:

El primer parámetro es isPresented y espera una propiedad de tipo Bool de @State que ahora crearemos. Le daremos esta propiedad, que es un booleano, y cuando cambiemos el valor de la propiedad a verdadero en la ejecución de nuestra app, como al pulsar un botón, aparecerá el aviso. Y el Alert desaparecerá cuando el valor de la propiedad sea falso. Cuando el usuario hace clic en el botón Aceptar, cambiamos el valor de isPresented en este caso.

Content: Este es el parámetro en el que debemos crear nuestro alerta. En este caso, usamos un inicializador que espera un título, mensaje, botón principal y botón secundario.

struct ContentView: View {
    
    @State var isPresented: Bool = false
    
    var body: some View {
        Text("Suscribe to Swift Programming")
            .padding()
        Button("Accept") {
            isPresented = true
        }
        .alert(isPresented: $isPresented, content: {
            Alert(title: Text("Hello world"),
                  message: Text("Suscribe to YouTube"),
                  primaryButton: Alert.Button.default(Text("Accept"), action: {
                    print("User accepted")
                  }),
                  secondaryButton: .destructive(Text("Cancel")))
        })
    }
}

Mostrar una alerta con un único botón

SwiftUI nos permite mostrar alarmas al cliente con su modificador alert(), pero la forma en que funciona depende de si te estás enfocando en iOS 15 y versiones posteriores o si también quieres admitir iOS 13 y 14. Le mostraré las dos metodologías aquí; sin embargo, la metodología más actual de iOS 15 es ideal ya que amplía los botones estándar de SwiftUI.

Primero deberíamos consultar el método para iOS 15. Para mostrar una alarma, cree una expresión booleana que decida si la alarma debe ser perceptible, luego conéctela a un modificador ready() junto a cada uno de los botones que desea mostrar en la advertencia. Todos los botones están listos cuando se tocan, por lo que puedes asignar una actividad vacía a la excusa básica.

struct ContentView: View {
    @State private var showAlert = false

    var body: some View {
        Button("Show Alert") {
            showingAlert = true
        }
        .alert("Important message", isPresented: $showAlert) {
            Button("OK", role: .cancel) { }
        }
    }
}

Para demostrarlo, el método principal es caracterizar algún tipo de condición vinculable que decida si la alerta debe ser evidente o no. Luego, en ese punto, unes eso a tu visión fundamental, que presenta la alerta cuando su condición resulta ser válida. Por ejemplo, este código fuente crea un booleano de alerta de visualización que rastrea si el mensaje de “Drink Water” debe mostrarse, establece ese booleano cuando se toca un botón y luego, en ese punto, crea y conecta una vista de alerta utilizando ese booleano para que aparece cuando se toca el botón:

struct ContentView: View {
    @State private var showingAlert = false

    var body: some View {
        Button("Show Alert") {
            showingAlert = true
        }
        .alert(isPresented: $showingAlert) {
            Alert(title: Text("Important message"), message: Text("Drink Water"), dismissButton: .default(Text("Got it!")))
        }
    }
}

La segunda forma de abordar la generación de alertas es vincularse a algún expresa discrecional que se ajuste al protocolo Identificable, que hará que la alarma se muestre cada vez que cambie el valor del artículo.

Hay dos beneficios de esta estrategia:

Puedes conectar cualquier artículo que desees en tiempo de ejecución, de modo que su alarma pueda mostrar bastantes fragmentos distintos de información.


SwiftUI naturalmente abre lo discrecional cuando tiene estima, por lo que debes estar seguro de que existe cuando necesita mostrar cautela; no se moleste en verificar y abrir el valor usted mismo.
Por ejemplo, esto muestra una alerta con dos cualidades únicas según el jugador de fútbol elegido:

struct FootballPlayer: Identifiable {
    var id: String { name }
    let name: String
}

struct ContentView: View {
    @State private var selectedShow: FootballPlayer?

    var body: some View {
        VStack(spacing: 20) {
            Text("What is your favorite TV show?")
                .font(.headline)

            Button("Select Ronaldo") {
                selectedShow = FootballPlayer(name: "Ronaldo")
            }

            Button("Select Messi") {
                selectedShow = FootballPlayer(name: "Messi")
            }
        }
        .alert(item: $selectedShow) { show in
            Alert(title: Text(show.name), message: Text("Great choice!"), dismissButton: .cancel())
        }
    }
}

Gracias por leer hasta aquí. Puedes seguirnos en el canal de YouTube para estar a la última sobre programación en Swift y SwiftUI.

Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Article

Cambiar el color de la Navigation Bar en SwiftUI

Next Article

Como descargar e instalar XCode en un Mac

Related Posts