m nuevo en objective-c, he hecho una aplicación de página de inicio de sesión en la que he usado UISwitch para recordar detalles de inicio de sesión si el interruptor está en modo activado. He terminado para recordar los detalles de inicio de sesión pero el problema es cómo usar la condición de encendido/apagado. Gracias por adelantadoUdeswitch on/off
Respuesta
Agregaría una declaración condicional en algún lugar de su código dependiendo de la propiedad del interruptor on
. Digamos, por ejemplo, que recuerda detalles de inicio de sesión en un método llamado rememberLoginDetails
. Lo que se puede hacer es, cuando se activa algún tipo de acción (el usuario abandona la página de inicio de sesión, por ejemplo):
if([yourSwitch isOn]) {
[self rememberLoginDetails];
} else {
// Do nothing - switch is not on.
}
El método importante aquí es el método para la isOn
UISwitch yourSwitch
. isOn
es el captador para la propiedad on
del conmutador, que es una propiedad BOOL
que contiene YES
si el conmutador está activado y NO
si no lo está.
Para obtener más información, puede ver el UISwitch class reference, específicamente el part about isOn
.
Creo que el código debe ser la siguiente:
if([yourSwitch isOn] == YES) {
[self rememberLoginDetails];
} else {
// Do nothing - switch is not on.
}
No, no es así. Si el valor del retorno es un BOOL, entonces no necesita usar un operador de comparación, ya que el "si" opera en un BOOL (si (VERDADERO) hace las cosas; si no, haga otras cosas;). Por lo tanto, siempre que [yourSwitch isOn] devuelva SÍ (o NO), el "si" atravesará correctamente. Este código aquí realmente tiene que hacer más llamadas, lo que lo hace más lento (solo en unos pocos milisegundos, pero aún así). – ColdLogic
Esta es otra solución para esa pregunta.
if (switchValue.on == YES)
{
// Code...
}
else
{
// Other code...
}
La solución más fácil de todos :)
if (switchValue.on){
//Remember Login Details
}
else{
//Code something else
}
¿Cómo puedo agregar un valor al interruptor? –
que tenía el mismo problema, no tenía el nombre de la UISwitch = Seleccionado
lo cambié a otro nombre y funcionó.
si desea recordar los detalles de inicio de sesión justo en el momento en que el usuario ENCIENDE el interruptor, puede hacerlo creando una Acción.
- (IBAction)yourSwitch:(id)sender {
if([sender isOn]){
//do your stuff here
}else{
}
}
Esta es otra solución, si su UISwitch está en una tableView
1 añadir este código en "tableView: cellForRowAtIndexPath:" método
[switchControl addTarget:self action:@selector(switchChanged:) forControlEvents:UIControlEventValueChanged];
2 añadir este método
- (void) switchChanged:(id)sender {
UISwitch *switchControl = sender;
NSLog(@"The switch is %@", switchControl.on ? @"ON" : @"OFF");
}
- 1. Python bool de impresión 'On' u 'Off' en lugar de 'Verdadero' o 'Falso'
- 2. WPF Debugging datatriggers?
- 3. Cuadro desplegable del filtro CGridView del array
- 4. jQuery: La manera más fácil de ajustar una etiqueta de imagen con una etiqueta de anclaje A
- 5. Creando un UISwitch programáticamente
- 6. ¿Importar mi clase personalizada y llamar a su método?
- 7. ¿Cómo agregar controles deslizantes de encendido/apagado?
- 8. ¿Cómo acceder al hilo en ejecución/ejecutable?
- 9. andengine aplicar fuerza
Hola Tim, he usado tu código ... pero el problema es el mismo. es recordar los detalles en off también. –
En ese caso, sería útil si pudiera editar su pregunta original para incluir el código que está usando. – Tim
@Harita: Tuve el mismo problema ... Intenté usar == TRUE después y todavía no funcionó. Luego entré en el constructor de interfaz, conecté el interruptor a mi IBOutlet var y funcionó:] – abelito