Iphone: заполнение UITableView или CustomCells из NSMutableDictionary - PullRequest
0 голосов
/ 09 марта 2011

Мне нужен ваш совет для решения этой проблемы:

Я анализирую XML-файл и помещаю результаты в NSMutableDictionarys, который я помещаю в NSMutableArray:

NSMutableArray с Dictionarys выглядит следующим образом:

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 голосов
/ 10 марта 2011

Все, что вам нужно, это заставить 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;
}
...