2010-11-02 5 views
1

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

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

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

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

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

Мысли?

ответ

3

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

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

[theTable selectRowAtIndexPath:tempPath animated:YES scrollPosition:UITableViewScrollPositionBottom]; 
+0

Вы правы, я знал это, я просто не знал, как это сделать. Это сделал трюк. Спасибо, что просветил меня! :) – gabaum10

1

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

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

+0

Это выглядит не так с тем, как мое приложение теперь течет. Я бы предпочел, чтобы вся камера была освещена. – gabaum10

Смежные вопросы