새소식

iOS/UIKit

[iOS] 한 개의 ViewController에서 여러 개의 tableView 처리 방법

  • -

프로젝트를 진행하는 도중 여러 개의 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
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.