IndexPath для UITableView не работает - PullRequest
1 голос
/ 16 ноября 2011

Я пытаюсь определить indexPath строки выбора моего UITableView, чтобы я мог передать соответствующие данные соответствующим образом. Прямо сейчас он продолжает регистрировать 0 независимо от того, какую ячейку я выбираю. Есть идеи почему? (Да, IBOutlet для таблицы правильно подключен).

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"patientChart"])
    {
        UITabBarController *tabBar = (UITabBarController *)segue.destinationViewController;
        PatientChartViewController *vc = [tabBar.childViewControllers objectAtIndex:0];
        NSIndexPath *path = [self.appointmentTableView indexPathForSelectedRow];
        vc.appointmentDictionary = [self.appointmentArray objectAtIndex:path.row];
    }
}

Ответы [ 2 ]

3 голосов
/ 16 ноября 2011

Метод indexPathForSelectedRow будет возвращать индекс выбранной строки, если строка выбрана или 0 в противном случае.

Так, например, если cell было выбрано и впоследствии отменено, вы не получите его index path, позвонив по номеру [tableView indexPathForSelectedRow];, потому что в это время ни одна ячейка не выбрана.

1 голос
/ 16 ноября 2011

При использовании iOS5 решение для этого - объявить экземпляр в .h и установить свойство для копирования, как показано ниже.

NSIndexPath *path;
@property (nonatomic, copy) NSIndexPath *path;

Назначить значение indexpath экземпляру, т.е.

Я столкнулся с этой проблемой, когда пытался выполнить это на iOS5 и решить ее, как указано выше.Надеюсь, это поможет вам.

...