Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

UITableViewController와 UIViewController의 차이점은 무엇입니까?

<시간/>

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() 메소드 내에서 수행됩니다.