在数组中显示UITableView中的选择性数据

时间:2013-03-25 10:01:08

标签: ios xcode uitableview nsmutablearray

我有一个NSMutableArray显示为

 (
          13002,
          My Drive,
          13006,
          Testing1,
          13007,
          Testing123    
 )

在我的NSLog中

我想用名称(My Drive,Testing1& Testing123)填充我的UITableView,并希望使用ID作为副标题。

4 个答案:

答案 0 :(得分:0)

NSmutableArray *element; //contains your array

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *cellIdentifier = @"MyCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:cellIdentifier];

    element = [array objectAtIndex:indexPath.row];
    cell.textLabel.text = element;


    element = [array objectAtIndex:indexPath.row +1 ];
    cell.subtitle.text = element; 

答案 1 :(得分:0)

在indexpath方法和行数方法中使用单元格行如下

 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
        return array.count/2;
 }


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      int row = [indexPath row]*2;

      static NSString *CellIdentifier = @"Cell";

      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     if (cell == nil) {
              cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
              cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
              cell.textLabel.font = [UIFont boldSystemFontOfSize:14];
     }    

     cell.textLabel.text = [array objectAtIndex:row+1];
     cell.detailTextLabel.text = [array objectAtIndex:row];

     return cell;
}

你的问题会解决......

答案 2 :(得分:0)

根据您的应用程序,您可能需要考虑使用NSMutableDictionary而不是数组。这样,您的数据模型将准确地表示这些名称映射到ID的事实。你可以使用

NSArray *arrayOf Keys = [theDictionary allKeys];

获取字典中的键数组,然后执行以下操作:

cell.textLabel.text = [theDictionary objectForKey:[arrayOfKeys objectAtIndex:indexPath.row]];
cell.detailtextLabel.text = [arrayOfKeys objectAtIndex:indexPath.row];

答案 3 :(得分:0)

您还应该考虑使用免费的Sensible TableView框架。您只需将数组传递给框架,它就会自动在表视图中显示它。