Добавление ячейки таблицы для каждой записи в uitableview? - PullRequest
0 голосов
/ 04 июня 2010

Я пытаюсь внедрить систему, в которой пользователь изначально представлен с единственной табличной ячейкой, в uitableview (сгруппированный стиль), внутри uinavigation view.

  ---------------
+ | add record  |
  ---------------

Когда они щелкают по ячейке, они выдвигаются на новый экран, где они заполняют несколько текстовых представлений (возможно, встроенных в ячейки табличного представления)

  ---------------
  | (name)      |
  ---------------
  | (phone num) |
  ---------------

Затем, когда они возвращаются, они могут видеть новую запись, а также ячейку «Добавить запись».

  ---------------
  | record  1   |
  ---------------
+ | add record  |
  ---------------

(Когда они снова войдут в запись 1, появится кнопка удаления)

Есть ли примеры кода или библиотек, которые бы достигли этого?

1 Ответ

2 голосов
/ 04 июня 2010

ИМХО задача довольно простая. Вам не нужны примеры кода для этого. Все, что вам нужно, это понять, как работает источник данных UITableView и как работает UINavigationView.

Прочитайте это 2 руководства:

Этого должно быть более чем достаточно для реализации этой функции.

В двух словах вы должны поместить UITableView в стек UINavigationController с ячейкой "Добавить запись". При выборе события для этой ячейки вы должны нажать другой UITableView или свой пользовательский вид. Когда пользователь нажимает кнопку «Готово» - вы должны сохранить измененные данные в вашей модели и извлечь текущий вид из стека UINavigationController. После этого вы должны сообщить своему первому UITableView, что модель была изменена, и она прочитает ее снова.

Ответ на комментарий Вы должны разработать свою структуру данных. Например. ваша модель будет NSMutableArray объектов MyRecord. Итак, вы регистрируетесь в tableView:cellForRowAtIndexPath:

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

UITableViewCell *cell = [tableView 
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] 
        initWithStyle:UITableViewCellStyleDefault 
        reuseIdentifier:CellIdentifier] 
        autorelease];
}
if[recordsArray count] > 0 {
    // you have some records
    if(indexPath.row < [recordsArray count]) {
       MyRecord *record = [recordsArray objectAtIndex:indexPath.row];
       cell.textLabel.text = record.name;
    } else {
       // last cell is Add Record
       cell.textLabel.text = @"Add Record";
    }
} else {
cell.textLabel.text = @"Add Record";
}   
return cell;
}

Это просто идея. он может содержать некоторые глупые вещи (например, 2 в жестком коде @ «Добавить запись»), но идея должна быть ясной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...