Как узнать, есть ли у uitableview выделенная ячейка

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

Я пытался использовать: (NSIndexPath *)indexPathForSelectedRow но это не работает, потому что, если у меня нет выделенной ячейки [(NSIndexPath *) row] возвращает "0", а не ноль

не могли бы вы помочь?

Спасибо..

1 ответ

Решение

Ваш метод правильный - indexPathForSelectedRow действительно возвращает nil, если ячейка не выбрана. Но если вы попытаетесь отправить сообщение объекту nil и использовать возвращаемое значение, оно будет равно 0, поэтому вам нужно проверить, равняется ли значение пути нулю или нет, прежде чем пытаться получить из него строку ячейки:

NSIndexPath *path = [table indexPathForSelectedRow];
if (path){
   row = [path row];
   ...
}
else{
 // No cell selected
}

PS ноль это просто типизированный 0, так что на практике это одно и то же.

Другие вопросы по тегам