получить заголовок 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; }
- автоматическое изменение размера метки в пользовательской ячейке во время удаления
- Как предотвратить выделение строки UITableView?
- Как установить другой UITableViewCellStyle для разных наборов ячеек в одной таблице?
- Нарисуйте вертикальную линию вниз
- Правый CellIdentifier для ячейки в UITableView
- Как решить исключение IOS после создания таблицы?
- Как правильно связать пользовательские элементы UITableViewCell и доступа
- ViewDidAppear iOS 4.3 vs iOS 5, экран загрузки не появится в 4.3
- Как создать разделы в UITbleViewCell с помощью одного NSArray?
- iOS «проведите пальцем по удалению», не изменяя состояние кнопки редактирования
- Почему строки из plist не отображаются в правильном порядке в UITableView?
- UITableView удаляет все повторно используемые ячейки
- Действительно ли dequueing повторно используемые ячейки действительно необходимы, если эти ячейки уникальны в UITableView?
Храните заголовки разделов в массиве как,
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]
и сделайте все, что хотите, с возвращенной строкой.