Iphone:从NSMutableDictionary填充UITableView或CustomCells

时间:2011-03-09 19:12:34

标签: iphone uitableview nsmutablearray nsmutabledictionary

我需要你的建议来解决这个问题:

我正在解析XML文件并将结果放在我放入NSMutableArray的NSMutableDictionarys中:

带有Dictionarys的NSMutableArray如下所示:

Res: (
    {
    adresse = "Wielandg 36";
    email = "office@tierarzt-riegelnegg.at";
    latitude = "47.063065712289";
    longitude = "15.439759954196";
    ordiname = "Kleintierpraxis Jakomini Dipl Tzt Riegelnegg Gerfried";
    ort = Graz;
    plz = 8010;
    tel = "+43316830438";
    tierarztid = 3;
    web = "http://www.tierarzt-riegelnegg.at";
},
    {
    adresse = "Rechbauerstr 3";
    email = "glantschnig@kleintierambulatorium.at";
    fax = "+43316321156";
    latitude = "47.070320493663";
    longitude = "15.448505434137";
    ordiname = "KLEINTIERAMBULATORIUM - Dr. Simon Glantschnig";
    ort = Graz;
    plz = 8010;
    tel = "+43316321156";
    tierarztid = 2;
    web = "http://www.kleintierambulatorium.at";
},
    {
    adresse = "Humboldtstr 7";
    latitude = "47.079379100630";
    longitude = "15.440064023548";
    ordiname = "Bernhart Barbara Dr";
    ort = Graz;
    plz = 8010;
    tel = "+43316684912";
    tierarztid = 4;
}

这部分工作得很好!现在我将“ordiname”放在UITableView中,当用户点击名称时,我打开一个“DetailView”,我想在UITableView或CustomCells中显示字典的结果 - NSLog这个工作正常 - 我可以看到DetailView中的整个选定字典。必须动态地在TableView或CustomCells中进行演示,因为并非所有可能的条目都必须填充(例如:传真不是必需的)。

我怎样才能做到这一点? NSMutableDictionary的顺序始终相同......

感谢您提供任何帮助和建议!

BR,

的Stefan

1 个答案:

答案 0 :(得分:0)

您只需要让DetailView采用UITableViewDataSource协议并添加以下方法,

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [myDictionary count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *name = [[myDictionary allKeys] objectAtIndex: indexPath.row];
    NSString *value = [myDictionary objectForKey:name];
    UITableViewCell *cell = [table dequeReusableCellWithItentifier:@"MyCell"];
    if(!cell) {
        //create cell
    }
    //set the name and value
    cell.textLabel.text = [NSString stringWithFormat:@"%@:%@", name, value];
    return cell;
}