IOS&Mac
[swift] Table View 다루기
MOVE🔥
2023. 2. 27. 13:55
728x90
반응형
1. list 생성 및 Data 추가
var list = [SulVO]()
override func viewDidLoad() {
var sul = SulVO()
sul.name = "맥주"
sul.price = 4000
self.list.append(sul)
sul = SulVO()
sul.name = "소주"
sul.price = 4000
self.list.append(sul)
}
2. list Data 출력
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// 출력할 목록 셀 개수 반환
return self.list.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// 셀 객체 생성 후 반환한다.
// 여기서 데이터 출력 설정한다.
let row = self.list[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "ListCell")!
cell.textLabel?.text = row.name
return cell
}
3. list Data 선택시
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// 셀 선택시 호출된다.
// 셀 데이타 넘겨주고 화면이동
guard let asvc = self.storyboard?.instantiateViewController(identifier: "AddSulVC") as? AddSulViewController else{return}
asvc.curSul = self.list[indexPath.row]
self.navigationController?.pushViewController(asvc, animated: true)
}
4. List Data Reload
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
fetchData()
tableView.reloadData()
}
5. Swipe Data Delete
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if(editingStyle == .delete){
// TODO :: 삭제 한번더 물어보는 alert창
// DB에서 목록 삭제
var deleteSulQ = "delete from sulListTB where name = \\"" + self.list[indexPath.row].name + "\\";"
if( myDB.commitQuery(query: deleteSulQ) ){
self.list.remove(at: indexPath.row)
//TableView에서 삭제
tableView.deleteRows(at: [indexPath], with: .fade)
}else{
// TODO :: 삭제에 실패했습니다 alert
}
}
}
728x90
반응형