- Reto:
Inicio de sesión
( Usando los métodos de la clase SaveData()
)
- Acción ejecutada al Iniciar Sesión. Añadí la nueva variable bool “ifNotUserFound” para activar la alerta en caso que no encuentre usuario.
@State var ifNotUserFound = false
func iniciarSesion()
{
// Comienza el inicio de sesión
print("Estoy iniciando sesión.")
// Creación de instancias. En este caso la clase SaveData
let objetoActualizadorDatos = SaveData()
let resultado = objetoActualizadorDatos.validar(correo: self.correo, contrasena: self.contraseña)
if resultado == true
{
// Se activa la pantalla Home
ifNotUserFound = false
isPantallaHomeActive = true
}else
{
ifNotUserFound = true
}
}
- Botón
Button(action: {iniciarSesion()},
label:
{
Text("Iniciar Sesión").fontWeight(.bold)
.foregroundColor(.white)
.frame(maxWidth: .infinity, alignment: .center)
.padding(EdgeInsets(top: 11, leading: 18, bottom: 11, trailing: 18))
.overlay(RoundedRectangle(cornerRadius: 6.0)
.stroke(Color("Dark-cian"), lineWidth: 1.0)
.shadow(color: .white, radius: 6))
}).alert(isPresented: $ifNotUserFound, content:
{
Alert(title: Text("Error"), message: Text("No se encontró nigún usuario o la contraseña es incorrecta"), dismissButton: .default(Text("Entendido")))
}
)
Registro
- Acción ejecutada al Registrar
@State var isPantallaHomeActive = false
func registrar()
{
// Confirmar que la contraseña haya sido escrita correctamente
if contraseña != confirmarContraseña
{
contraseñaIsNotConfirmed = true
}else
{
// Contraseña confirmada. No se muestra la alerta.
contraseñaIsNotConfirmed = false
// Objeto de la clase SavData.
let objetoActualizadorDatos = SaveData()
// Registro que no requiere nombre.
let resultado = objetoActualizadorDatos.registrar(correo: self.correo, contrasena: self.contraseña)
// Activar la pantalla home
isPantallaHomeActive = true
print("Se guardaron los datos con exito?: \(resultado)")
}
}
- Botón Registrar
- Si la contraseña no se confirma, es decir si no son iguales
contraseña
yconfirmarContraseña
, se activa la alerta con la variablecontraseñaIsNotConfirmed
Button(action: {registrar()},
label:
{
Text("REGÍSTRATE").fontWeight(.bold)
.foregroundColor(.white)
.frame(maxWidth: .infinity, alignment: .center)
.padding(EdgeInsets(top: 11, leading: 18, bottom: 11, trailing: 18))
.overlay(RoundedRectangle(cornerRadius: 6.0)
.stroke(Color("Dark-cian"), lineWidth: 1.0)
.shadow(color: .white, radius: 6))
}).alert(isPresented: $contraseñaIsNotConfirmed, content:
{
Alert(title: Text("Error"), message: Text("La contraseña no coincide. Confirma tu contraseña"), dismissButton: .default(Text("Entendido")))
}
)
// Navegar a la pantalla Home
NavigationLink(destination: Home(), isActive: $isPantallaHomeActive, label: {EmptyView()})
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?