【问题标题】:UITableView selection that creates different NSUserDefaults创建不同 NSUserDefaults 的 UITableView 选择
【发布时间】:2014-04-13 23:31:11
【问题描述】:

我正在创建一个应用程序,它有两个视图控制器,都带有表视图。第一个控制器选择玩家,第二个控制器选择位置。一旦你选择了一个玩家,它就会带你到第二个视图控制器来选择一个位置。

这是我在第二个表格视图中的选项:

self.positions = @[@"1 - Prop",@"2 - Hooker",@"3 - Prop",@"4 - Second row",
@"5 - Second     row",@"6 - Blind side flanker",@"7 - Open side flanker", @"8 - No.8",
@"9 - Scrum half",@"10 -     Outside half",@"11 - Wing",@"12 - Inside centre", 
@"13 - Outside centre",@"14 - Wing",@"15 -     Fullback"];

下面是我在第二个视图中选择位置的代码。我将玩家 ID 传递过来,并将其临时存储在 textfield2 中。如您所见,无论您选择哪个选项,它都会将 playerid 保存在“1-prop”键下。我该如何改变这一点,以便 15 个潜在位置中的每一个都有自己的用户默认值?

例如,如果他们选择“2 - Hooker”,它会将玩家详细信息保存在名为“2-Hooker”的 NSUserDefaults 下

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString * valueToSave = self.textField2.text;
    [[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:@"1 - Prop"];
    NSString *savedValue = [[NSUserDefaults standardUserDefaults]stringForKey:@"1 - Prop"];
    self.testLabel.text = savedValue;
}

谢谢。

【问题讨论】:

  • [[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:[self.positions objectAtIndexPath:[indexPath row]; “savedValue”也有同样的变化。
  • 非常感谢尝试过但出错但发现只需将其更改为:[[NSUserDefaults standardUserDefaults] setObject:valueToSave forKey:self.positions[indexPath.row]]; ...非常感谢
  • XCode 不是在运行时表达的错误,对吧?这是因为我忘了关闭 2 个括号。

标签: ios objective-c uitableview nsuserdefaults


【解决方案1】:

解决方案在于使用NSArray positions(用于key)和NSIndexPath,由委托方法tableView:didSelectRowAtIndexPath:提供

使用的关键是:[self.positions objectAtIndex:[indexPath row]]self.position[[indexPath row]] 带有 short-hand 样式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多