iPhone didSelectRowAtIndexPath не запускается - PullRequest
1 голос
/ 02 ноября 2010

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

NSIndexPath *tempPath= [NSIndexPath indexPathForRow:0 inSection:0];

[theTable.delegate tableView:theTable didSelectRowAtIndexPath:tempPath];

Который запускает метод, но ячейка не остается выбранной. Это запускает правильный метод и выполняет код там, и я никогда не отменяю его выбор. После того, как пользователь нажимает другую ячейку, она остается выбранной правильно. Просто не в первый раз. Кто-нибудь знает, что может быть причиной этой странности? Я даже пытался сделать это:

[[theTable.delegate tableView:theTable cellForRowAtIndexPath:tempPath] setSelected:YES];

Мысли

Ответы [ 2 ]

3 голосов
/ 02 ноября 2010

Прежде всего, вам не следует напрямую вызывать методы делегата.

Если вам нужно программно выбрать ячейку (как это делает приложение Почта), используйте метод selectRowAtIndexPath:

[theTable selectRowAtIndexPath:tempPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
1 голос
/ 02 ноября 2010

Согласно HIG, вы не должны оставлять ячейки табличного представления в выбранном состоянии.Вам настоятельно рекомендуется (настоятельно) отменить выбор строки, как только вы выполните любое действие, которое требуется крана.

Для постоянного выбора вы должны использовать аксессуар, и вы можете установить аксессуар ячейки для галочкиуказать «выбрано»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...