【问题标题】:iphone setting and reading state UISwitchiphone设置和阅读状态UISwitch
【发布时间】:2011-05-22 20:55:04
【问题描述】:

我有一个视图,其中它的对象是从数据库中设置的,并且同样保存到数据库中。 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 行时会转储

我还需要不仅可以设置值,还可以读取它

【问题讨论】:

    标签: iphone uiswitch


    【解决方案1】:

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

    例如:[yourUISwitch setOn:YES];

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

    更新

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

    【讨论】:

    • 请参阅上面的附加信息。
    • @Mark 我已经更新了我的答案。 (也就是说,您应该使用 setOn,而不是 SetOn,就像您在问题更新中使用的那样。)
    • 谁能告诉我我做错了什么?我知道这一定是错的,但不知道为什么!
    • @Mark 根据我的评论,您需要使用setOn,而不是SetOn。 (此案意义重大。)
    • 谢谢! @JustSid 只是说我写错了,这根本没有帮助,但 @middapaka cmets 挽救了一天!谢谢!!!!
    【解决方案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
    

    【讨论】:

    • 我试过你的代码,没用,我想存储 UISwitchState 以记住我的应用程序中的用户名、密码
    • 首先,我不会使用这种方法来存储密码,因为它们可以被读取(它将信息存储在 plist 文件中)。有更合适的方法来存储密码。当您说它不起作用时,您能否详细说明(您是否进行了调试以查看它不起作用的地方)?亲切的问候。
    【解决方案3】:

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

        //Change switch state
        self.mSwitchAccept.setOn(true, animated: true)
        //Get the switch state
        let switchState : Bool = self.mSwitchAccept.on
    

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-01-07
        • 1970-01-01
        • 1970-01-01
        • 2016-06-03
        • 1970-01-01
        • 2011-10-03
        • 1970-01-01
        • 2018-04-04
        • 1970-01-01
        相关资源
        最近更新 更多