访问自定义UITableViewCells中的对象

时间:2014-12-18 15:30:28

标签: ios uitableview swift

我在每个单元格中使用带有按钮,标签和进度视图的自定义UITableViewCells。

我在cellForRowAtIndexPath中设置了每个对象的标记,因此每个对象都有相同的标记,这也是tableview中单元格的行。

问题是,我怎么想访问进度视图对象并在单元格中按下按钮时显示一些进度?如何在没有NSIndexPath参数的方法中正确访问此对象?

由于

UITableViewCell设置:

class SongsTableViewCell: UITableViewCell {    
    @IBOutlet weak var lblSongTitle: UILabel!
    @IBOutlet weak var btnPlayPause: UIButton!
    @IBOutlet weak var progressCell:UIProgressView!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
}

DetailsViewController with UITableView:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("SongTitleCell", forIndexPath: indexPath) as SongsTableViewCell
        let songDic : NSDictionary = arrSongs.objectAtIndex(indexPath.row) as NSDictionary

        cell.lblSongTitle.text = songDic.objectForKey("SongTitle") as? String
        cell.btnPlayPause.tag = indexPath.row

        cell.progressCell.tag = indexPath.row
}

单元格中按钮的操作:

 @IBAction func cellSongClicked (sender : AnyObject ){

       // Need to access the progress view here....

      var btnCurrentPressed = sender as UIButton
      var cell = self.tableView.viewWithTag(btnCurrentPressed.tag)
      var progressInCell : UIProgressView!
}

我想点击按钮btnPlayPause访问progressCell并显示一些处理。

1 个答案:

答案 0 :(得分:0)

如何在没有NSIndexPath参数的方法中正确访问此对象?

@interface类中创建一个整数变量,并在didSelectRowAtIndexPath方法中分配,如下所示

在类中声明变量:

  int someInteger;

在以下方法之后,您必须像这样分配。

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
   {

        someInteger = indexPath.row;
    }

您可以通过其他一些方法访问someInteger