2014-12-18 3 views
1

Я использую пользовательские UITableViewCells с кнопкой, меткой и представлением прогресса в каждой ячейке.Доступ к объектам в пользовательских UITableViewCells

Я установил тег каждого объекта в своем cellForRowAtIndexPath, чтобы каждый объект имел тот же тег, который также является строкой ячейки в представлении таблицы.

Проблема в том, как я могу получить доступ к объекту представления прогресса и показать некоторый прогресс при нажатии кнопки в ячейке? Как я должен правильно обращаться к этим объектам в методе, который не имеет параметра 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 с 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 и показать некоторую обработку.

+0

Можете ли вы опубликовать код, чтобы сделать его более понятным, что вы делаете? Вы можете передать объект просмотра прогресса в этот метод. – Chris

+0

@Chris Я добавил коды –

ответ

0

Как правильно получить доступ к этим объектам в методе, который не имеет параметра NSIndexPath?

Создать целочисленную переменную в @interface классе и назначить в didSelectRowAtIndexPath метод как следующий

Объявите переменную в классе:

int someInteger; 

После того как в следующем методе вы должны назначить, как это.

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

     someInteger = indexPath.row; 
    } 

И вы можете получить доступ в некоторых других методах someInteger.

+0

код не находится в 'didSelectRowAtIndexPath' его в функции cellSongClicked –

Смежные вопросы