Как программно выбрать UITableView
строку, чтобы
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
исполняется? selectRowAtIndexPath
будет только выделять строку.
iphone
objective-c
cocoa-touch
uitableview
4thSpace
источник
источник
Ответы:
Из справочной документации:
Что бы я сделал, это:
И затем, откуда вы хотите вызвать selectRowAtIndexPath, вы вместо этого вызываете doSomethingWithRowAtIndexPath. Кроме того, вы также можете вызвать selectRowAtIndexPath, если вы хотите, чтобы обратная связь с пользовательским интерфейсом происходила.
источник
Как сказал Яанус:
Так что вам просто нужно вызвать
delegate
метод самостоятельно.Например:
Версия Swift 3:
Версия ObjectiveC:
Версия Swift 2.3:
источник
UITableView's selectRowAtIndexPath: animated: scrollPosition: должен добиться цели .
Просто перейдите
UITableViewScrollPositionNone
на scrollPosition, и пользователь не увидит никакого движения.Вы также должны быть в состоянии вручную запустить действие:
[theTableView.delegate tableView:theTableView didSelectRowAtIndexPath:indexPath]
после вас
selectRowAtIndexPath:animated:scrollPosition:
так выделяется, как и любая связанная логика.источник
если вы хотите выбрать строку, это поможет вам
Это также выделит строку. Затем делегировать
источник
Свифт 3/4/5 Решение
Выберите строку
Отменить выбор строки
источник
Существует два разных метода для платформ iPad и iPhone, поэтому вам необходимо реализовать оба:
Segue.
источник
Используйте эту категорию, чтобы выбрать строку таблицы и выполнить заданный переход после задержки.
Назовите это в вашем
viewDidAppear
методе:источник