동적 테이블뷰에 수많은 테이블 뷰 셀에 on/off를 처리 할려면 어떻게 해야 하나?
tableViewCell 클래스 코드에 evnent를 작성한다.??
물론 보여주기만 한다면 가능 하다.
outlet을 tableView.xib에서 tableViewCell 클래스로 버튼을 연결해서 이벤트코드를 작성 하면
보여주는 기능 만 처리 할때는 충분 하다.
하지만 이를 이용하는 TableViewController 에서 어떤 talbeViewCell이 on인지 off인지
어떻게 알아 차릴수가 있을까?
이렇게 접근하면 곤란 하다.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
cell.onoffButton.tag = indexPath.row
cell.onoffButton.addTarget(self, action: "onoffButtonConnected:", forControlEvents: .TouchUpInside)
return cell
}
위와 같이 onoffButton (테이블뷰셀에 버튼) 에 tag 값을 해당 row의 indexPath.row로 설정 하고
이벤트 함수를 addTarget을 이용해서 걸어 준다.
func onoffButtonConnected(sender : UIButton!) {
sender.selected = !sender.selected
if self.morningcalldata[sender.tag]["setting"] == "ON" {
self.morningcalldata[sender.tag]["setting"] = "OFF"
} else {
self.morningcalldata[sender.tag]["setting"] = "ON"
}
}
이벤트 함수에서는 tag 값을 다시 index로 이용하여 데이터 처리까지 할 수 있다.