У меня есть UITableView ... когда пользователь нажимает на строку, открывается другой экран. Проблема в том, что иногда я один раз нажимаю, но didSelectRowAtIndexPath вызывает несколько раз. Как это предотвратить?iPhone: UITableView, didSelectRowAtIndexPath вызывается несколько раз
Один случая как воспроизвести эту ситуацию это (вы можете даже попытаться воспроизвести, что на родные настройках iPhone):
- Нажмите на одну строку, но не отпускаете палец
- слайда несколько следующих строк слева направо или справа налево (не просто нажмите, вы должны скользить) следующие несколько строк в другом порядке другой стороны
- палец Выпуск
вы увидите, что синий выбор на разъединять al rows, и какой экран будет открыт, является случайным
UPDATE: В didSelectRow Я только что начал новый контроллер, где в режиме viewDidLoad начинается синхронизация. И если воспроизвести мой шаг за шагом сценария, чем синхронизация может быть запущено несколько раз
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
SecondViewController *secondViewController =
[SecondViewController alloc] init];
[self.navigationController
pushViewController:secondViewController animated:YES];
[secondViewController release];
}
'' didSelectRowAtIndexPath'' не будет вызываться, если вы не отпустите палец. Есть еще один делегат '' willSelectRowAtIndexPath'', который вызывается перед ним. Эти делегаты неоднократно называются. Возможно, вы захотите опубликовать некоторый код, чтобы описать вашу проблему. Я считаю, что вы ошиблись в коде. –
Вы правы, didSelectRowAtIndexPath не будет вызываться, если я не отпущу палец, но когда я отпираю палец, он вызывает несколько раз. Ничего особенного в этом методе. Я добавлю обновления через минуту – Jim