Sign In
한결
Status
Empty
Assignee
Empty
UIViewController + UITableView vs. TableViewController
TableViewController에서 테이블 형태의 뷰를 만들어가면,
이후 앱 디자인이 변경될 경우 더 많은 작업을 해야 할 수 있겠다. 혹은 ViewController자체를 바꿔야 할 수도 있을 것 같다.
또한, 자유롭게 UI 요소를 컨트롤하기 어렵다는 한계를 마주해야 한다.
그래서 보통,
UIViewController 위에다가 UITableView 요소를 올리는 방식으로 개발 작업의 자유도를 높인다.
물론, 이렇게 작업할 경우 상속 관계의 차이가 있어서 테이블 작업을 할 때의 방식이 차이가 날 수 있다. (그냥 난다라고 보면 된다.)
그러면, UIViewController + UITableView 조합으로 코드는 어떻게 작성할까?
1.
UIViewController의 특정 위치에 UITableView를 얹는다. 필요에 따라서 TableView 객체를 Outlet 속성으로 잡는다.
2.
UIViewController 클래스를 상속받은 클래스에 TableView를 다루기 위한 두 개의 프로토콜을 연결한다.
UITableViewDelegate
UITableViewDataSource
3.
viewDidLoad 메서드에서 TableView의 두 프로토콜을 클래스 인스턴스 자체로 설정해준다.
override func viewDidLoad() { super.viewDidLoad tableView.delegate = self tableView.dataSource = self }
4.
이후 UITableViewController에서 주로 사용하던 tableView(.., numberOfRowsInSection), tableView(.., cellForRowAt) 메서드 코드를 작성해준다.
👍