Все ответы здесь лучше, но на всякий случай ... Есть способ получить 10 последних добавленных записей. (это довольно ненадежно :)) тем не менее вы можете сделать что-то вроде
SELECT * FROM table LIMIT 10 OFFSET N-10
N - должно быть общее количество строк в таблице (SELECT count (*) FROM table). Вы можете поместить его в один запрос, используя подготовленные запросы, но я не буду вдаваться в подробности.
Вы можете использовать свойство tag
кнопки, чтобы указать, в какой строке была создана кнопка, если вы не используете теги ни для чего другого.
Вы можете получить доступ к кнопкам superview
, чтобы получить UITableViewCell
, который содержит вашу кнопку, но если вам просто нужен номер строки, вы можете использовать tag
свойство, как в предыдущем посте.
У меня такой же сценарий. Для этого я создал настраиваемую ячейку. Я добавил два свойства, раздел и строку. Я также добавил владельца, которым будет мой производный класс TableViewController. Когда запрашиваются ячейки, я устанавливаю раздел / строку на основе indexPath вместе с владельцем.
cell.section = indexPath.section cell.row = indexPath.row cell.owner = self
Следующее, что я сделал, - когда я создал кнопки, я связал события кнопки с ячейкой, а не с tableViewController. Обработчик событий может прочитать запись раздела и строки и отправить соответствующее сообщение (или событие) в TableViewController. Это значительно упрощает ведение домашнего хозяйства и техническое обслуживание за счет использования существующих методов и обслуживания, а также сохранения максимальной автономности ячейки. Поскольку система уже отслеживает ячейки, зачем делать это дважды!
Гораздо более простые решения состоит в том, чтобы определите вашу кнопку Callback с (ID) отправителем и используйте ее, чтобы выкопать индекс строки таблицы. Вот какой-то пример код:
- (IBAction)buttonWasPressed:(id)sender
{
NSIndexPath *indexPath =
[self.myTableView
indexPathForCell:(UITableViewCell *)[[sender superview] superview]];
NSUInteger row = indexPath.row;
// Do something with row index
}
, скорее всего, вы использовали тот же индекс строки для создания / заполнения ячейки, поэтому следует тривиально определить, что ваша кнопка теперь должна сделать. Не нужно играть с тегами и пытаться держать их в порядке!
Разъяснение: Если вы используете в настоящее время - (Ibaction) Buttonwasured; просто переопределите его как - (Ibaction) Buttonwasured: (ID) отправителя; Дополнительный обратный аргумент Там нет необходимости делать что-то дополнительное, чтобы получить его. Также не забудьте подключить вашу кнопку до нового обратного вызова в интерфейсе Builder!
Еще проще:
-(IBAction) buttonPressed {
NSIndexPath *myIndexPath = [(UITableView *)self.superview indexPathForCell: self];
// do whatever you need to do with the information
}