如何在数组中保存自定义单元格数据?

时间:2013-03-06 21:27:27

标签: ios xcode

我的UITableView中有一个customcell。此自定义单元格具有标签和文本框。当用户填写数据(4-5个字段)并单击“保存”按钮时。我想保存他输入的数据。

我该怎么做?

我最多只有5-6个字段。如果你能举一些关于我如何完成这个的例子,那将是很棒的。

5 个答案:

答案 0 :(得分:0)

一种方法:将数据保存在字典中。

答案 1 :(得分:0)

单击保存按钮后,您可以创建要填充的数据的数据结构。将这些值设置为数据结构 您也可以使用NSMutableDictionary键值存储

示例:假设我们有4个UITextFeilds textFeild1,textFeild2,textFeild3,textFeild14

NSMutableDictionary *dic  = [NSMutableDictionary dictionary];
[dic addObject: textFeild1.text forValue: @"val1"];
[dic addObject: textFeild2.text forValue: @"val2"]; 
[dic addObject: textFeild3.text forValue: @"val3"];
[dic addObject: textFeild4.text forValue: @"val4"];

//Now you have the values and can retrieve them by: 
NSString *value1 = [dic  valueForKey:@"val1"];

答案 2 :(得分:0)

根据您的评论进行编辑:

在这种情况下,Apple建议使用Delegate-Pattern。基本上,你做的是:

@protocol FirstDataVCDelegate;

@interface FirstDataVC : UIViewController

@property (weak, nonatomic) id<FirstDataVCDelegate> delegate;

//...

@end

@protocol FirstDataVCDelegate <NSObject>

- (void)firstDataVC:(FirstDataVC *)dataVC didCollectData:(NSDictionary *)data;

@end


@interface RootVC: UIViewController<FirstDataVCDelegate>

//...

@end

@implementation RootVC

- (void)firstDataVC:(FirstDataVC *)dataVC didCollectData:(NSDictionary *)data
{
    NSString *name = [data valueForKey:@"name"];
    [self.completeData setValue:name forKey:@"name"];
}

@end

在这种情况下,RootVC将是想要发送整个数据的VC。 FirstDataVC是用户输入数据的VC之一。

每个获得用户输入的VC都必须提供RootVC实现的协议。

Here更多是关于授权的。

答案 3 :(得分:0)

您是否尝试将数据传回tableview?如果是这样,您必须将信息保存在数据结构中,然后使用定义的协议传递它。

答案 4 :(得分:0)

尝试使用以下代码:

- (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.tabTeamDetails dequeueReusableCellWithIdentifier:@"customcellIdentifier"];

get UItextfeild and assign tag as below
   textbox.tag = indexpath.row; //used to refer particular textfiled
}

在保存按钮操作中:

NSMutableDictionary *dic  = [[NSMutableDictionary alloc] init];
//for(i=0;i<noofrowsintableview;i++){
NSString *text = (NSString *)[self.view viewWithTag:i];
[dic addObject:[NSString stringWithFormat:text] forValue: i];
}