получить число раздела и номер строки на пользовательском нажатии кнопки ячеек?

Чтобы удалить любой файл cookie http, если мы просто попытаемся удалить его из ответа [используя res.clearCookie("key")], он определенно не будет работать. В действительности, чтобы удалить http cookie, домен и путь очень важны.

Домен и путь определяют область действия cookie. По сути, они, по сути, говорят браузеру, к какому веб-сайту принадлежит cookie. Отправка того же значения cookie с помощью; добавление expires также является плохой идеей, поскольку вы хотите, чтобы содержимое было уничтожено, но этого не произойдет.

Лучшей идеей будет сделать файл cookie недействительным, установив пустое значение и включив поле expires, как показано ниже:

res.cookie("key","empty the key content", {expires:old date, domain:'.example.com', path:'/'});

res.cookie("token", "", { expires: new Date(0),domain:'.test.com', path: '/' });

Надеюсь, это поможет !!!

8
задан zpesk 30 May 2009 в 15:48
поделиться

5 ответов

Вам потребуется реализовать метод обработки событий UIControl в вашем представлении контроллер и установите его как обработчик для всех ваших кнопок. т.е. внутри вашей функции -tableView: cellForRowAtIndexPath: вы должны сделать что-то вроде:

[theCell.button addTarget: self
                   action: @selector(buttonPressed:withEvent:)
         forControlEvents: UIControlEventTouchUpInside];

Тогда ваш обработчик событий будет выглядеть так:

- (void) buttonPressed: (id) sender withEvent: (UIEvent *) event
{
    UITouch * touch = [[event touches] anyObject];
    CGPoint location = [touch locationInView: self.tableView];
    NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint: location];

    /* indexPath contains the index of the row containing the button */
    /* do whatever it is you need to do with the row data now */
}
26
ответ дан 5 December 2019 в 04:43
поделиться

Несколько мыслей:

Вы можете перебирать иерархию супервизора кнопки, пока не найдете UITableViewCell, затем вызовите - (NSIndexPath *) indexPathForCell: (UITableViewCell *) ячейка в UITableView.

- (void)buttonClicked:(id)sender {
  UIView *button = sender;

  for (UIView *parent = [button superview]; parent != nil; parent = [parent superview]) {
    if ([parent isKindOfClass: [UITableViewCell class]]) {
      UITableViewCell *cell = (UITableViewCell *) parent;           
      NSIndexPath *path = [self.tableView indexPathForCell: cell];

      // now use the index path

      break; // for
    }
  }
}

В качестве альтернативы можно использовать тег кнопки для хранения индекса, ссылающегося на строку. Он содержит только одно целое число, поэтому он имеет наибольший смысл, когда у вас есть один раздел или когда вы управляете своими строками как плоским списком.

Вы также можете создать подкласс UITableViewCell, чтобы инкапсулировать кнопку. Ваш UITableViewCell может реагировать на события кнопки и ретранслировать событие своему собственному делегату, передавая self. Затем делегат события может вызвать - (NSIndexPath *) indexPathForCell: (UITableViewCell *) ячейку в UITableView, чтобы получить путь индекса.

8
ответ дан 5 December 2019 в 04:43
поделиться

Когда вы выбираете ячейку в tableView, вызывается следующий метод:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

для доступа к номеру раздела: int section = indexPath.section;

для доступа к строке число (в правильном разделе): int row = indexPath.row;

6
ответ дан 5 December 2019 в 04:43
поделиться

UITableView может преобразовывать координату CGPoint в indexPath :

-(NSIndexPath *)indexPathForRowAtPoint:(CGPoint)point
2
ответ дан 5 December 2019 в 04:43
поделиться

Добавить переменную экземпляра can вашего подкласса UITableViewCell Чтобы сохранить индексный путь ячейки:

NSIndexPath *myIndexPath;

Когда вы создаете ячейку:

cellForIndexPath:

передайте индексный путь к вновь созданной / переработанной ячейке .

Теперь, когда вы нажимаете кнопку, просто считывайте путь индекса из ivar вашей ячейки.

1
ответ дан 5 December 2019 в 04:43
поделиться