如果我将UITableView作为UIViewController的属性,并且我使用[tableView cellForRowAtIndexPath:indexPath]
手动访问特定行的单元格。
在一个方法调用时,我是否应该看到多次调用:
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
我的每个UITableViewCell都有一个UITextField,我正在尝试访问它的文本数据。
这就是我正在做的事情:
for (int section = 0; ix < countOfSections; ++section)
{
NSInteger countOfRowsInSection = // attained
for (int row = 0; row < countOfRowsInSection; ++row)
{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:section];
// the follow call seems to elicit multiple invocations
// on my table delegate's
// - (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
UITableViewCell *cell = [self.tableview cellForRowAtIndexPath:indexPath];
// Access some custom data
}
}
是否有更好的方法来访问UITextField中存储的所有数据,每个UITableViewCell都适用于所有部分和行?
答案 0 :(得分:1)
您真的不应该尝试使用视图进行数据存储。无论您使用什么作为表的数据源,都应该有一个对象的数组(或其他结构),其中包含在调用tableView:cellForRowAtIndexPath:
时为单元格提供内容的数据。
如果您需要对该信息的其他访问权限,您应该直接从数据结构而不是显示器获取它。