У меня есть пользовательская ячейка местоположения в моем представлении таблицы с помощью кнопки. Когда я нажимаю кнопку, я хочу, чтобы она перешла к деталям пива для этого места. Я использую раскадровку, и я могу заставить его работать, подключив всю ячейку BeerTableViewController со следующим кодомSeegue TableViewCell с UIButton
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier] isEqualToString:@"beer"]){
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
BeerTableViewController *beer = (BeerTableViewController *)[segue destinationViewController];
Location *location = [self.location_results objectAtIndex:indexPath.row];
beer.location_id = location.location_id;
beer.location_name = location.location_name;
}
}
, но когда я создаю SEGUE с кнопки вместо всей клетки всегда перетекает с первая строка, независимо от того, какая строка нажата. Очевидно, я не пропускаю проход в строке с нажатием кнопки. Я рассмотрел ряд решений здесь, не найдя ясного ответа. Есть идеи?
Edit 1
Я пытаюсь следующий код в моем TableViewController
-(void)beerTapsPressed:(id)sender {
UITableViewCell *clickedCell = (UITableViewCell *)[[sender superview] superview];
NSIndexPath *clickedButtonPath = [self.tableView indexPathForCell:clickedCell];
[self performSegueWithIdentifier:@"beer" sender:clickedButtonPath];
}
У меня есть Ctrl + перетащил SEGUE в раскадровку из TableView в DetailView и назвал переход "пиво" и У меня есть кнопка в ячейке под названием «beerTaps», но я все еще получаю только данные строки 1 независимо от того, какую строку я нажимаю.
Я закончил тем, что нажал кнопку тега и использовал ваш предложенный метод. Благодаря! – jacobt