swift - have a button outside the collection view to do what the collection view cell is supposed to do -


i have collection view acting image carousel when press on cell pdf file open, code below that. wanna have button press on instead of pressing on cell itself. dont know how because of line 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]             }     } 

this button function , have tried

@ibaction func openbook(_ sender: any) {       //   self.selectedindexpath = indexpath        // self.performsegue(withidentifier: "showimage", sender: self)      //    self.selectedindexpath = indexpath     } 

use **indexpathsforselecteditems** property of uicollectionview indexpaths of selected uicollectionviewcells. number of elements depends on whether multiple selection allowed in uicollectionview or not.

example:

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) } 

no need create separate variable selectedindexpath keep track of selected cell. call performsegue on button tap , rest of work in prepare(for segue: uistoryboardsegue, sender: any?)


Comments

Popular posts from this blog

python Tkinter Capturing keyboard events save as one single string -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

javascript - Z-index in d3.js -