UITableView选择创建不同的NSUserDefaults

时间:2014-04-13 14:57:36

标签: ios objective-c uitableview nsuserdefaults

我正在创建一个具有两个视图控制器的应用程序,这两个视图控制器都具有tableviews第一个控制器选择一个玩家,第二个控制器选择一个位置。选择播放器后,它会带您到第二个视图控制器选择一个位置。

以下是我在第二个表视图中的选项:

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中。正如您所看到的,无论您选择何种选项,它都会将球员保存在“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;
}

感谢。

1 个答案:

答案 0 :(得分:0)

解决方案包括使用NSArray positions(适用于key)和NSIndexPath委托方法tableView:didSelectRowAtIndexPath:

使用的关键是:[self.positions objectAtIndex:[indexPath row]]self.position[[indexPath row]] 简写风格。