我的UITableView中有一个customcell。此自定义单元格具有标签和文本框。当用户填写数据(4-5个字段)并单击“保存”按钮时。我想保存他输入的数据。
我该怎么做?
我最多只有5-6个字段。如果你能举一些关于我如何完成这个的例子,那将是很棒的。
答案 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];
}