如何选择(并将其保存在数组中)tableViewController动态单元格的内容? 我的tableView由1个始终存在的部分组成,我可以在其中设置要在运行时显示的部分数。 该设置由步进器控制。当我单击步进器上的“+”按钮时,表格中会添加一个包含三行的部分。 每一行都包含一个textField!考虑到运行时甚至可能有1000个部分,如何选择这些行的内容并将它们保存在数组中? 代码如下:
- (void)viewDidLoad{
[super viewDidLoad];
self.arrDetails = [NSArray arrayWithObjects:@"Name",@"Surname",@"Fix",@"Role", nil];}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1 + self.numberOfComponents;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section == 0) {
return 1;
}
else{
return [self.arrDetails count];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0) {
NSString *CellIdentifier = @"cellStepper";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UILabel *stepperLabel = (UILabel *)[cell viewWithTag:1];
stepperLabel.text = [NSString stringWithFormat:@"%i",self.numberOfComponents];
UIStepper *stepper = (UIStepper *)[cell viewWithTag:2];
stepper.minimumValue = 0;
stepper.maximumValue = 20;
stepper.stepValue = 1;
//stepper.wraps = YES;
stepper.autorepeat = YES;
stepper.continuous = YES;
return cell;
}
NSString *CellIdentifier = @"cellDetail";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
UITextField *cellLabelComponent = (UITextField *)[cell viewWithTag:3];
cellLabelComponent.placeholder = self.arrDetails[indexPath.row];
return cell;
}
- (IBAction)stepperClik:(UIStepper *)stepper{
if (stepper.value == 0 && self.numberOfComponents == 0) {
if (stepper.value > self.numberOfComponents) {
self.numberOfComponents += 1;
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationAutomatic];
}
else{
return;
}
}
if (stepper.value > self.numberOfComponents) {
self.numberOfComponents += 1;
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationAutomatic];
}
else{
self.numberOfComponents -= 1;
[self.tableView deleteSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationAutomatic];
}
}
@end
答案 0 :(得分:0)
由于某个部分中有一定数量的单元格,并且可以使用self.numberOfComponents
访问部分的数量,因此可以为每个单元格构建一个indexPath。
NSMutableArray *savedTexts = [NSMutableArray alloc] init];
for (int i = 0; i < self.numberOfComponents; i < 0)
{
NSMutableArray *component = [NSMutableArray alloc] init];
for (int j = 0; j < [self.arrDetails count]; j < 0)
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:j inSection:i+1];
UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];
[component addObject: [cell viewWithTag:3].text];
}
[savedTexts addObject: component];
}
有了这个,你应该有一个组件数组,每个组件都包含它的详细信息。