15

我有一个视图,其中它的对象是从数据库中设置的,并且同样保存到数据库中。UITextViews 工作得很好,但我似乎不知道如何设置 UISwitch 的状态。

我可以在 IB 中更改它,但这不是我需要的。DB 中的记录具有 0 或 1 布尔值。因此,如果该字段为真,那么我想将 UISwitch 的状态设置为 ON。

此外,当我保存记录时,我需要能够查看视图上的值,从而在我的表上设置字段。

谢谢你的帮助!!

编辑:这是我到目前为止所做的:

.h 文件

@interface UserEdit : UIViewController {


    IBOutlet UISwitch *male;

}


@property (nonatomic, retain) IBOutlet UISwitch *male;

.m 文件

@synthesize male;


- (void)viewDidLoad {
    [super viewDidLoad];

    [male SetOn:NO];


}

应用程序在遇到上面的 SetOn 行时会转储

我还需要不仅能够设置值,还需要读取它

4

4 回答 4

43

您可以通过or方法设置UISwitch的状态,具体取决于您的要求。onsetOn:animated:

例如:[yourUISwitch setOn:YES];

查看UISwitch 类参考的设置关闭/开启状态部分了解更多信息。

更新

根据文档,您可以通过以下方式读取[yourUISwitch isOn];

于 2011-05-22T21:01:01.457 回答
2

您可以通过以下方式进行操作:

//
//  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
于 2014-06-25T10:43:17.453 回答
1

有设置和读取 UISwitch 状态的 swift 版本代码

    //Change switch state
    self.mSwitchAccept.setOn(true, animated: true)
    //Get the switch state
    let switchState : Bool = self.mSwitchAccept.on
于 2016-04-21T15:56:28.400 回答
0

为了设置 UISwitch 你必须使用这个[yourSwitch setOn: YES animated: YES];

为了读取 UISwitch 您需要通过布尔类型的开关状态来检索它NSLog(@"Switch state :%d", [yourSwitch isOn]);

于 2014-03-28T08:57:35.497 回答