UItableViewController와 UIViewController는 iOS UIKit 프레임워크의 서로 다른 두 객체입니다. 둘 다 다른 용도로 사용됩니다.
UIViewController 클래스는 해당 View 컨트롤러 내에서 발생하는 작업을 담당하는 ViewContoller를 관리합니다. 이 클래스는 ViewDidLoad, ViewWillApper, ViewDidAppear, ViewWillDisapper, ViewDidDisapper와 같은 뷰 컨트롤러에서 발생하는 작업을 인식합니다.
반면에 UITableViewController는 테이블을 관리하는 역할을 하며, UITableViewDataSource, UITableViewDelegate를 사용하는 데이터와 이벤트입니다.
UITableViewController는 UIViewController, UITableViewDataSource 및 UITableViewDelegate를 준수하여 테이블 보기를 구현합니다.
다음은 UIViewController를 구현한 클래스의 예입니다.
class ViewController : UIViewController { @IBOutlet weak var sampleView: UIView! override func viewDidLoad() { } }
UITableViewController는 UIViewController도 준수하므로 UIViewController의 메소드를 구현할 수 있습니다. UITableViewController는 해당 ViewController에 Table View 외에 다른 내용이 없을 때 주로 사용됩니다.
뷰 컨트롤러에 tableView와 함께 다른 콘텐츠가 있는 경우 대부분 UIViewController를 따르고 UITableViewDataSource가 해당 테이블에 일부 데이터 소스를 할당하고 UITableViewDelegate가 해당 테이블 뷰의 이벤트를 처리하는 Table View 프로토콜을 구현합니다.피>
UITableViewDataSource 또는 UITableViewDelegate를 구현하는 UIViewController의 예는 다음과 같습니다.
class ViewController : UIViewController, UITableViewDataSource, UITableViewDelegate { override func viewDidLoad() { } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) −> Int { // } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) −> UITableViewCell { // } }
위 외에도 아래에 언급된 테이블 보기의 몇 가지 다른 속성이 있습니다.
-
테이블 보기가 나타나려고 할 때 데이터를 다시 로드합니다.
-
표 보기는 표시될 때 기본적으로 선택을 지웁니다.
-
테이블 보기가 화면에 나타나면 스크롤 표시기가 깜박입니다. 이것은 viewDidAppear() 메소드 내에서 수행됩니다.