一旦用户在UITextfield中输入文本,我首先将数据放入字典中,然后将字典添加到数组中。但由于某些原因插入数组后..它记录为空..
·H
@interface Bread_TableViewController : UITableViewController <UITextFieldDelegate>
{
NSMutableArray * inventoryarray;
}
**.m**
- (void)textFieldDidEndEditing:(UITextField *)textField
{
// Make sure to set the label to have a ta
NSString*textfieldclicked;
if (textField.tag == 1) {
textfieldclicked=@"Unit";
} else if (textField.tag ==2) {
textfieldclicked=@"Case";
}
id textFieldSuper = textField;
while (![textFieldSuper isKindOfClass:[UITableViewCell class]]) {
textFieldSuper = [textFieldSuper superview];
}
NSIndexPath *indexPath = [self.tableView indexPathForCell:(UITableViewCell *)textFieldSuper];
InventoryTableViewCell *cell = (InventoryTableViewCell *)[self.tableView cellForRowAtIndexPath:indexPath];
NSMutableDictionary * productinfo = [[NSMutableDictionary alloc] init];
[productinfo setObject:cell.product.text forKey:@"product"];
[productinfo setObject:textField.text forKey:textfieldclicked];
NSLog(@"productin %@", productinfo);
[inventoryarray addObject: productinfo];
}
-(IBAction)save{
NSLog(@"array %@", inventoryarray);
}
答案 0 :(得分:1)
不可见的细胞实际上不存在。只有可见的一个加上每个屏幕外的一个实际上在内存中。滚动时会创建其他数据,并从数据源中提取数据 一旦单元格被推出屏幕(+1单元格),它将从层次结构中删除并添加到重用池中。
TL; DR:您无法循环显示屏幕外单元格,因为它们不存在。如果要访问每个项目的数据,请在数据源中执行此操作。
答案 1 :(得分:0)
textFieldDidEndEditing
方法之外执行字典的alloc-init,以及viewDidLoad
喜欢
@interface yourViewController ()
@property (strong, nonatomic) NSMutableDictionary * product info;
- (void)viewDidLoad {
self.productinfo = [[NSMutableDictionary alloc] init];
}