получить заголовок tableview titleForHeaderInSection

У меня есть 4 секционных стола в моем приложении iOS 6. У этих таблиц есть заголовок, который я установил в titleForHeaderInSection. Я хотел бы знать, как я могу получить доступ к этому заголовку с помощью NSLog в файле didSelectRowAtIndexPath. Я вижу строковое значение строки, на которую я нажал, в предупреждении, но мне также понравится заголовок раздела tableview. Я не уверен, как это получить.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSMutableArray *sectionArray = [self.arrayOfSections objectAtIndex:indexPath.section]; UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath]; NSString *cellText = selectedCell.textLabel.text; NSLog(@"Selected Cell: %@", cellText); UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Selected a row" message:[sectionArray objectAtIndex:indexPath.row] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; } - (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ NSString *result = nil; if ([tableView isEqual:self.myTableView] && section == 0) { myTableView.tableHeaderView.tag = FROZEN; result = @"Frozen"; } else if ([tableView isEqual:self.myTableView] && section == 1) { myTableView.tableHeaderView.tag = FRUIT; result = @"Fruit"; } else if ([tableView isEqual:self.myTableView] && section == 2) { myTableView.tableHeaderView.tag = SALADS; result = @"Salads"; } else if ([tableView isEqual:self.myTableView] && section == 3) { myTableView.tableHeaderView.tag = VEGETABLES; result = @"Vegetables"; } return result; } 

Храните заголовки разделов в массиве как,

 NSArray *sectionTitles = [NSArray arrayWithObjects:@"Frozen", @"Fruit", @"Salads", @"Vegetables", nil]; 

И измените свой метод titleForHeaderInSection как,

 - (NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section { NSString *result = [sectionTitles objectAtIndex:section]; //.... return result; } 

Измените didSelectRowAtIndexPath как,

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { //... NSLog(@"Header title: %@", [sectionTitles objectAtIndex:indexPath.section]); //... } 

Другим вариантом является использование приведенного ниже метода в didSelectRowAtIndexPath

 NSLog(@"Header title: %@", [self tableView:tableView titleForHeaderInSection:indexPath.section]); 

Ну, похоже, что UITableView должен предоставить вам доступ к этому, но я не нахожу ничего … Самый простой способ реализовать это, я думаю, создать массив (я назову его mySectionTitles и предположим это свойство) с заголовками разделов, а затем в файле didSelectRowAtIndexPath вызовите [self.mySectionTitles objectAtIndex:indexPath.section] и сделайте все, что хотите, с возвращенной строкой.