J'ai une vue dans laquelle ses objets sont définis à partir d'une base de données et également enregistrés dans une base de données. UITextViews fonctionne très bien, mais je n'arrive pas à trouver comment définir l'état d'un commutateur UIS.
Je peux le changer dans l'IB, mais ce n'est pas ce dont j'ai besoin. L'enregistrement dans la base de données a un booléen 0 ou 1. Donc, si le champ est vrai, je souhaite définir l'état de l'UISwitch sur ON.
De plus, lorsque je sauvegarde l'enregistrement, je dois pouvoir consulter la valeur de la vue et définir ainsi le champ de ma table.
merci pour toute aide!!
EDIT: C’est ce que j’ai fait jusqu’à présent:
.h fichier
@interface UserEdit : UIViewController {
IBOutlet UISwitch *male;
}
@property (nonatomic, retain) IBOutlet UISwitch *male;
.m fichier
@synthesize male;
- (void)viewDidLoad {
[super viewDidLoad];
[male SetOn:NO];
}
l'application se vide quand elle frappe la ligne SetOn ci-dessus
Je dois aussi pouvoir non seulement définir la valeur, mais aussi la lire
Vous pouvez définir l'état d'un UISwitch via les méthodes on
ou setOn:animated:
, en fonction de vos besoins.
par exemple: [yourUISwitch setOn:YES];
Consultez la section Définition de l'état désactivé/activé de Référence de classe UISwitch pour plus d'informations.
UPDATE
Selon la documentation, vous pouvez lire la valeur via [yourUISwitch isOn];
Vous pouvez le faire de la manière suivante:
//
// ViewController.m
//
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UISwitch *mySwitch;
- (IBAction)switchChanged:(id)sender;
@end
@implementation ViewController
- (IBAction)switchChanged:(id)sender
{
[[NSUserDefaults standardUserDefaults] setBool:self.mySwitch.on forKey:@"SwitchState"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.mySwitch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchState"];
}
@end
Il y a le code de version Swift pour définir et lire l'état de UISwitch
//Change switch state
self.mSwitchAccept.setOn(true, animated: true)
//Get the switch state
let switchState : Bool = self.mSwitchAccept.on
Afin de définir un UIS avec, vous devez utiliser ceci [votre commutateur activé: OUI animé: OUI];
Afin de lire le commutateur UISwitch, vous devez le récupérer en fonction de l'état du commutateur qui est un type booléen NSLog (@ "commutateur:% d", [votre commutateur isOn]);