在集合视图外部有一个按钮来执行集合视图单元格应该执行的操作



当我按下 pdf 文件将打开的单元格时,我有一个集合视图充当图像轮播,下面的代码将执行此操作。 我想做的是有一个按钮来按下它,而不是按下单元格本身。 但是我不知道该怎么做,因为那行self.selectedIndexPath = indexPath

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
self.selectedIndexPath = indexPath
self.performSegue(withIdentifier: "showBook", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "showBook"
{
let vc = segue.destination as! showMo2lfatVC
vc.book = self.arrayBooks[self.selectedIndexPath.row]    
}
}

这是我的按钮功能,这是我尝试过的

@IBAction func openBook(_ sender: Any) {
//   self.selectedIndexPath = indexPath
// self.performSegue(withIdentifier: "showImage", sender: self)
//    self.selectedIndexPath = indexPath
}

使用UICollectionView**indexPathsForSelectedItems**属性来获取所有selectedUICollectionViewCellsindexPaths。您获得的元素数量取决于UICollectionView中是否允许multiple selection

例:

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
if segue.identifier == "showBook"
{
let vc = segue.destination as! ViewController2
if let selectedIndexPath = self.collectionView.indexPathsForSelectedItems?.first //Here
{
vc.book = self.arrayBooks[selectedIndexPath.row]
}
}
}
@IBAction func openBook(_ sender: UIButton)
{
self.performSegue(withIdentifier: "showBook", sender: self)
}

无需创建任何单独的变量selectedIndexPath来跟踪所选单元格。只需拨打button tapperformSegue,然后完成其余的工作prepare(for segue: UIStoryboardSegue, sender: Any?)

最新更新