如何创建一个取决于iPhone中的表视图数据的节表视图?

时间:2011-01-27 18:22:31

标签: iphone uitableview

我想创建一个分段表视图。使用XML解析,我获得了数据并显示在表视图中。现在我要检查数据是否为空,然后它不应该创建表视图部分。所以我想在创建表视图之前检查它。这意味着,如果数据不为空则则应创建一个节,否则无法创建节。因此,表格视图部分仅取决于数据(空或不)。

这是我的示例代码,

 person = [[Person alloc] initWithPersonName:DictionaryValue]; // Passing the values via Dictionary.
 [self.navigationController pushViewController:person animated:YES];

在人类中:

-(Person *) initWithPersonName:(NSMutableDictionary *) personDict  
{
  self.tableView.delegate = self;

      [[NSBundle mainBundle] loadNibNamed:@"Person" owner:self options:nil];

       NSString *firstName = [personDict valueForKey:@"firstName"];

       NSString *lastName = [personDict valueForKey:@"lastName"];

       NSString *cityName = [personDict valueForKey:@"city"];

       NSString *stateName = [personDict valueForKey:@"state"];

       return self;
 }

我想创建两个部分,

                  section - 1 -- > [firstName, LastName];
                  section - 2 -- > [city, state];

如何将这些节值放入数组中。可以创建单个数组以使用这两个部分,或者需要创建单独的数组来存储单独的部分。

假设我得到任何数据的空值,所以它不应该创建表视图部分。有什么可能实现这一目标?请指导我。

请给我任何示例代码或示例链接。

感谢。

1 个答案:

答案 0 :(得分:0)

您需要在UITableViewController子类中实现-numberOfSectionsInTableView:, - tableView:titleForHeaderInSection:和-tableView:numberOfRowsInSection:如果您还没有,则创建一个。这些名字非常明显。所以你可以这样做:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 2;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

    if (section == 0) return @"Title of section 1";
    if (section == 1) return @"Title of section 2";
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // return the number of rows you've got based on the section index
}

我相信,无论你是否有行,都会创建节标题,但不会在它下面显示任何内容。因此,如果没有数据,则一个部分是空的。有意义吗?

科迪