Я сделал ячейку collectionView динамическим типом и поместил такую информацию, как изображение, заголовок, автор и так далее.Эта информация о книге, и мы создали кнопку «просмотр» в нижней части ячейки.Когда я нажимаю ячейку
if let navigationController = segue.destination as? UINavigationController,
let index = collectionView.indexPathsForSelectedItems?.first,
let readBookController = navigationController.viewControllers.first as? ReadBookViewController {
readBookController.bookNo = self.booksCategory?.books[index.row].bookNo
readBookController.bookTitle = self.booksCategory?.books[index.row].bookTitle
}
Этот код работает нормально.
Но когда я нажимаю кнопку внутри ячейки, поведение при нажатии ячейки (let index = collectionView.indexPathsForSelectedItems? .First) =>
Этот код не запускается, он просто перемещает VC.
Есть ли способ передать те же данные в VC, когда ячейка нажата и когда кнопка нажата в ячейке?
код:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
switch (segue.identifier!) {
case "TappedCellSegue":
if let navigationController = segue.destination as? UINavigationController,
let index = collectionView.indexPathsForSelectedItems?.first,
let readBookController = navigationController.viewControllers.first as? ReadBookViewController {
readBookController.bookNo = self.booksCategory?.books[index.row].bookNo
readBookController.bookTitle = self.booksCategory?.books[index.row].bookTitle
}
case "TappedBtnSegue": // Not working
let readVC = self.storyboard?.instantiateViewController(withIdentifier: "ReadBookViewController") as! ReadBookViewController
if let navigationController = segue.destination as? UINavigationController,
let index = collectionView.indexPathsForSelectedItems?.first,
let readBookController = navigationController.viewControllers.first as? ReadBookViewController {
readBookController.bookNo = self.booksCategory?.books[index.row].bookNo
readBookController.bookTitle = self.booksCategory?.books[index.row].bookTitle
}
self.present(readVC, animated:true, completion: nil)
default:
break
}
}