2016-04-26 5 views
0

У меня есть UITableView, используя пользовательскую ячейку, которая заполнена MPMediaItems и кнопками (между прочим). Я пытаюсь выполнить действие с MPMediaItem конкретной ячейки, по отношению к которой нажата кнопка, а не через didSelectRowAtIndexPath. Я пробовал различные подходы, и я считаю, что теги, вероятно, подходят, но я не могу получить правильную реализацию. Кажется, я могу получить только первый элемент коллекции или последний. Каков правильный способ настройки тегов при работе с MPMediaItems? Некоторый код ниже ...Tags и MPMediaItems в пользовательской ячейке

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

ответ

2

Попробуйте уточнить код.

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

Теперь ваша проблема исправлена? –

+0

Это сработало ... спасибо! – rocketman240