web-dev-qa-db-fra.com

réglage de l'iphone et état de lecture UISwitch

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

15
Mark Worsnop

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];

42
John Parker

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
2
Painted Black

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
1
Kevin ABRIOUX

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]);

0
Super Xtreem