2015-01-12 7 views
0

Я добавил UITableView в свое приложение. В этом представлении таблицы есть ячейки, в которых отображаются несколько пользовательских кнопок редактирования, если они сдвинуты влево (с помощью этой функции: editActionsForRowAtIndexPath). Я хотел бы узнать, какой UITableViewCell прокручивается влево или отображает параметры пользовательского редактирования и задает текст по умолчанию как метку detailText в этой ячейке.найти uitableviewcell, который вычищен/в режиме редактирования

Для дальнейшего объяснения:

У меня есть несколько UITableViewCells. Пользователь просматривает одну из этих ячеек. Теперь ячейка находится в режиме редактирования и показывает параметр редактирования, который я добавил (с именем «Дата»). Пользователь нажимает эту кнопку/параметр (дата). Теперь появляется datePicker. Пользователь выбрал дату. Эта дата написана на этикетке. Эта dateLabel должна быть передана в detailTextLabel ячейки, которая была пропущена. Проблема в том, что я не знаю, как передать метку с датой в detailTextLabel ячейки, которая была пробита.

Я надеюсь, что кто-то может мне помочь. Я кодирую Свифт.

Это мой код для пользовательских опций, если UITableViewCell будет наотмашь слева:

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? { 

    let editingCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! 

    let date = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: "Date", handler: { (action, indexPath) -> Void in 

    self.showSideBar(true) 
    self.delegate?.sideBarWillOpen?() 
    self.isEditingStyle = true 

    }) 

    date.backgroundColor = UIColor(red: 0.204, green:0.667, blue:0.863, alpha: 1.0); 

    return [date]; 
} 

Дата подборщика:

func datePickerChanged(datePicker:UIDatePicker) { 

    var dateFormatter = NSDateFormatter() 

    dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle 
    dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle 

    var strDate = dateFormatter.stringFromDate(datePicker.date) 
    dateLabel.text = strDate 

} 

Дата добавления в detailTextLabel:

 lastEditedCell?.detailTextLabel?.text = dateLabel 
+0

Keep трек прокатывается клетки со ссылкой на ваш ViewController: 'слабый вар lastCellEdited: UITableViewCell' – gabuh

ответ

0

Вы можете отслеживать последнийEditedCell в функции tableView(tableView:, editActionsForRowAtIndexPath indexPath:)

var lastEditedCell:UITableViewCell? // property of the class 

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? { 

    let editingCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)! 

    lastEditedCell = editingCell 
    //Your Code 

} 

После того, как вы установили дату из режима выбора, вы можете установить функцию обратного вызова.

lastEditedCell?.detailTextLabel.text = date 
+0

Большое спасибо за ваш ответ?. Я внедрил код в свой проект. Но нельзя установить дату var (dateLabel) как текст detailTextLabel. В моем вопросе я разместил код. Пусть это поможет вам лучше понять. У вас также есть решение для этого? – hans

+0

Вы не можете заменить ярлык. Задайте свойство text detailTextLabel как строку даты или datelabel.text – rakeshbs

+0

Ok. Теперь это работает! Благодаря! – hans

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