更新静态UITableView的部分

时间:2012-07-06 15:40:14

标签: ios xcode ipad static tableview

我希望有人能帮忙......

我已经设置了一个带有四个部分的静态UITableView控制器。前两部分用于输入数据。第三部分有1个单元格,并包含一个保存按钮。

最后一节有6个单元格,我希望能够用前两个部分的数据填充这六个单元格,从长远来看,无论如何......

所以我尝试了一个小例子,但它没有用。控制台返回以下错误:

  

UITableView dataSource必须从tableView返回一个单元格:cellForRowAtIndexPath:'    * 第一次抛出调用堆栈:

以下是一个例子:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    NSIndexPath *EditRow = [NSIndexPath indexPathForRow:1 inSection:4];
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:EditRow];

    NSString *test = @"Test";
    cell.textLabel.text = test;

    NSLog(@"Index Path: %d", indexPath.row);
    NSLog(@"Cell ID:, %@", CellIdentifier);

    return cell;
}

所以我的问题归结为..如何更新特定部分中的特定单元格?

由于

2 个答案:

答案 0 :(得分:6)

当我实现静态单元格时,我会删除Xcode生成的通用cellForRowAtIndexPath存根中的numberOfSectionsInTableViewnumberOfRowsInSectionUIViewController方法;这些似乎只有在你处理动态细胞时才有必要。

然后,通过在故事板中进行控制拖动,我为需要以编程方式设置的单元格中的所有UI元素创建命名出口;在我的情况下,这些通常是UILabel s。在控制器的viewDidLoad方法中,我设置了这些出口的相应初始值,例如:

self.nameLabel.text = self.dataSource.name;

一旦连线,您可以随意更改任何值。

我希望这适合你。我很乐意向那些有更好(更合适?)方式的人学习。

答案 1 :(得分:1)

只需调用 - [UITableView(void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation],然后将为适当的索引路径调用您的数据源。