[iOS] 한 개의 ViewController에서 여러 개의 tableView 처리 방법
2023. 6. 17. 14:00
프로젝트를 진행하는 도중 여러 개의 TableView를 사용하는 경우가 생겼는데
UITableViewDelegate와 UITableViewDataSource를 처리해야하는데 어떻게 처리 해야될 지 당황 하였다.
일단 각각의 TableView IBOutlet 선언하고 Delegate와 DataSource는 따로 처리해야한다.
@IBOutlet weak var freeTableView: UITableView!
@IBOutlet weak var infoTableView: UITableView!
freeTableView.dataSource = self
freeTableView.delegate = self
infoTableView.dataSource = self
infoTableView.delegate = self
이제 cellForRowAt이랑 numberOfSection 처리해보자
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
if tableView == infoTableView {
guard let infoCell = infoTableView.dequeueReusableCell(withIdentifier: "InfoCell", for: indexPath) as? InfoTableViewCell else{return UITableViewCell()}
infoCell.titleLabel.text = infoboard[indexPath.row].title
infoCell.writerLabel.text = infoboard[indexPath.row].writer
return infoCell
}
if(tableView == freeTableView){
guard let freeCell = freeTableView.dequeueReusableCell(withIdentifier: "freeCell", for: indexPath) as? FreeTableViewCell else{return UITableViewCell()}
freeCell.titleLabel.text = freeboard[indexPath.row].title
freeCell.writerLabel.text = freeboard[indexPath.row].writer
return freeCell
}
return UITableViewCell()
}
결론 : if문으로 tableView를 구분해주면 된다.
출처 : https://neph3779.github.io/UseMultipleTableViewInOneViewController/
728x90
'iOS > UIKit' 카테고리의 다른 글
[iOS] 키보드 처리 (0) | 2023.12.30 |
---|---|
[iOS] 기종별로(iPhone, iPad) StoryBoard 구분하기 (1) | 2023.12.30 |
[iOS] TableView (0) | 2023.01.24 |
[iOS] 키보드 내리기 (0) | 2023.01.14 |
[iOS] Label 잘림 (0) | 2022.08.24 |