2016-04-26 13 views
0

Ich habe eine UITableView mit einer benutzerdefinierten Zelle, die (unter anderem) mit MPMediaItems und Schaltflächen gefüllt ist. Ich versuche eine Aktion mit dem MPMediaItem einer bestimmten Zelle auszuführen, in Bezug darauf, welche Schaltfläche angetippt wurde, nicht über didSelectRowAtIndexPath. Ich habe verschiedene Ansätze ausprobiert und ich glaube, Tags sind wahrscheinlich der Weg zu gehen, aber ich kann nicht die richtige Umsetzung bekommen. Ich kann nur den allerersten Gegenstand der Sammlung oder den letzten scheinen. Was ist der richtige Weg, um Tags beim Umgang mit MPMediaItems einzurichten? Einige Code ist unten ...Tags und MPMediaItems in einer benutzerdefinierten Zelle

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  
    { 
     let cell : SongCell = self.songsTableView.dequeueReusableCellWithIdentifier("cell") as! SongCell 
     cell.button.addTarget(self, action: #selector(handleSelection), forControlEvents: .TouchUpInside) 
     cell.tag = indexPath.row //removing this line results in getting the first item in the collection, using it results in the last (understandably so) 
     index = cell.tag 
     return cell 
    } 

    @IBAction func handleSelection(sender: AnyObject) 
    { 
     let songToHandle = tableData.items![index!] 
     queryAsCollectionItems?.append() 
    } 

Antwort

2

Try-Code unten.

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell  { 
     let cell : SongCell = self.songsTableView.dequeueReusableCellWithIdentifier("cell") as! SongCell 
     cell.button.addTarget(self, action: #selector(handleSelection), forControlEvents: .TouchUpInside) 
     cell.button = indexPath.row 
     return cell 
    } 

    @IBAction func handleSelection(sender: AnyObject) { 
      println(sender.tag) 
      let songToHandle = tableData.items![sender.tag!] 
      queryAsCollectionItems?.append() 
    } 
+0

Jetzt Ihr Problem behoben? –

+0

Das hat funktioniert ... danke! – rocketman240