【问题标题】:Selected segment of UISegmentedControlUISegmentedControl 的选定段
【发布时间】:2011-10-03 22:05:11
【问题描述】:

我正在使用带有两个部分的 UISegmentedControl:第一个是不要记住密码,第二个是记住密码。如果他们选择记住密码,我使用 NSUserDefaults 来记住这一点。启动时,如果 NSUserDefaults 为 YES,如何选择记住密码?

if ([[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Remember password"] == YES)
{

    //Make the second segment (segment 1 as it would be called, since first is segment 0) selected
}

【问题讨论】:

    标签: iphone ios nsuserdefaults uisegmentedcontrol segment


    【解决方案1】:

    就像在 viewDidLoad 中设置 selectedSegmentIndex 一样简单,以确保段不为零。

    -(void)viewDidLoad
    {
        [super viewDidLoad];
    
        if([[NSUserDefaults standardUserDefaults] boolForKey:@"Remember Password"])
        {
            segment.selectedSegmentIndex = 1;
        }
        else
        {
            segment.selectedSegmentIndex = 0;
        }
    }
    

    另外,为什么不使用UISwitch 并将on 值直接设置为存储的值?

    【讨论】:

    • 谢谢,效果很好!我不使用 UISwitch 的原因是因为它具有 YES 和 NO 的值,除非我在 XIB 文件中错过了它,否则您是否必须构建自定义开关才能更改单词?无论如何,我使用了 UISegmentedControl,因为我认为它更容易(一个 UI 或一个 UI??)。感谢您的帮助!
    • 是哪一个,我打算根据 En-es-string vs You-eye-view 的声音..就是这样.. 编辑:它是“a”找到了答案这里owl.english.purdue.edu/owl/resource/591/1
    • @Joe:您不必创建自定义开关来获取“是”和“否”,布尔值很简单,为 1 或 0,请查看我更新的答案以获得帮助,因为开关会更容易为您的用户。
    • @Zebs:我确信 Jack 指的是 UI 显示开关仅限于说 ON 和 OFF
    【解决方案2】:

    在处理布尔设置时,我建议使用 UISwitch 而不是分段控件。该开关将激活或取消激活记住密码。

    你设置值的方式是正确的,取回你使用的值:

    [[NSUserDefaults standardUserDefaults] boolForKey:@"Remember password"];
    

    因此,如果您使用 UISwitch,您可以这样做:

    switch.on = [[NSUserDefaults standardUserDefaults] boolForKey:@"Remember password"];
    

    如果您确实想使用 UISegmentedControl,它会更长一些,但同样简单:

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Remember password"]) {
            segmentedControl.selectedSegmentIndex = 1;
        }
        else{
            segmentedControl.selectedSegmentIndex = 0;
        }
    

    请记住,在处理布尔设置时,UISwitch 对用户来说更有意义。

    更新:

    要使用开关设置值,您只需执行以下操作:

    [[NSUserDefaults standardUserDefaults] setBool:switch.on forKey:@"Remember password"];
    

    这比使用 UISegmentedControl 简单得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-12
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多