2013-07-10 3 views
0

У меня есть приложение для хранения, в котором вы вводите имя и фамилию отдельно, и мне было интересно, можно ли поместить имена в один и тот же элемент tableView.Несколько имен массивов в одном месте

Вот мой Tableview код:

#pragma mark UITableViewDataSource Methods 

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"cell"]; 
    if (nil == cell) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"]; 
    } 

    NSLog(@"indexPath.row = %d, patients.count = %d", indexPath.row, patients.count); 
    Patient *thisPatient = [patients objectAtIndex:indexPath.row]; 
    cell.textLabel.text = thisPatient.patientName; 
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    cell.textLabel.textColor = [UIColor blackColor]; 
    if (self.editing) { 
     [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 
    } 
    return cell; 
} 

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

#pragma mark UITableViewDelegate Methods 

- (void) tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [patients removeObjectAtIndex:indexPath.row]; 
     [tv deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft]; 
    } 
} 

- (void)tableView:(UITableView *)tv didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    LSAppDelegate *delegate = (LSAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    PatientController *patient = [[PatientController alloc] initWithIndexPath:indexPath]; 
    [delegate.navController pushViewController:patient animated:YES]; 
    [tv deselectRowAtIndexPath:indexPath animated:YES]; 
} 

Я попытался cell.textLabel.text = thisPatient.patientName, thisPatient.patientSurname;

Хотя это показывает только первое имя, в то время как оно должно отображаться имя и фамилия Заранее спасибо

+0

Где вы владеете этой информацией? если у вас есть пул, к которому можно получить доступ в методе cellForRowAtIndexPath, вам просто нужно это сделать – geo

+0

Я храню информацию в базе данных, которая читается при загрузке файла –

+0

, у вас есть несколько вариантов размещения информации в вашей ячейке. В зависимости от ваших требований вы можете изменить ** стиль ** ячейки и установить «detailTextLabel» или объединить обе в простой строке с «stringWithFormat» или «stringByAppandingFormat» – geo

ответ

0

принести его из моего комментария к anwser:

использование

cell.textLabel.text = [NSString stringWithFormat:@"%@ %@", thisPatient.patientName, thisPatient.patientSurname]; 

или пользовательский формат вашу пользу.

Также возможно:

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"]; 

-

cell.textLabel.text = thisPatient.patientName; 
cell.detailTextLabel.text = thisPatient.patientSurname; 
0

Sure возможно. Вам нужно сделать свой собственный UITableViewCell, хотя вы можете отображать оба поля в одну ячейку. Взгляните на это tutorial, он делает то, что вам нужно.

+0

Возможно, вам понадобится мой код, чтобы посмотреть, как работает мое приложение –

+0

Редактировал вопрос –

+0

I не думаю, что это меняет мой ответ. Используйте учебник, чтобы узнать, как создавать собственные пользовательские ячейки. – mprivat

0

Вы также можете создать пользовательскую ячейку с двумя отдельными ярлыками. Это имеет преимущество размещения ярлыков друг над другом или в любом другом расположении. Вы также можете использовать фреймворк, такой как бесплатный Sensible TableView, чтобы автоматически заполнить эти ярлыки для вас.

Смежные вопросы