Computer >> Máy Tính >  >> Lập trình >> IOS

Sự khác biệt giữa UITableViewController và UIViewController là gì?

UItableViewController và UIViewController là hai đối tượng khác nhau của khung UIKit iOS. Cả hai đều được sử dụng cho các mục đích khác nhau.

Một lớp UIViewController quản lý một ViewContoller chịu trách nhiệm về các hành động xảy ra trong bộ điều khiển View đó. Lớp này nhận biết các hành động xảy ra trên bộ điều khiển chế độ xem, như ViewDidLoad, ViewWillApper, ViewDidAppear, ViewWillDisapper, ViewDidDisapper.

Trong khi đó, UITableViewController chịu trách nhiệm quản lý một bảng, đó là dữ liệu và các sự kiện bằng cách sử dụng UITableViewDataSource, UITableViewDelegate.

UITableViewController tuân theo UIViewController, UITableViewDataSource và UITableViewDelegate để triển khai chế độ xem bảng.

Dưới đây là ví dụ về một lớp triển khai UIViewController.

class ViewController : UIViewController {
   @IBOutlet weak var sampleView: UIView!
   override func viewDidLoad() {
   }
}

Một UITableViewController cũng tuân theo một UIViewController, do đó nó có thể triển khai các phương thức của một UIViewController. UITableViewController được sử dụng hầu hết nếu ViewController đó không có bất kỳ nội dung nào khác ngoại trừ Table View.

Nếu bộ điều khiển chế độ xem có nội dung khác cùng với Chế độ xem bảng, chúng tôi chủ yếu tuân theo một UIViewController và triển khai các giao thức của Chế độ xem bảng là UITableViewDataSource để gán một số nguồn dữ liệu cho bảng đó và UITableViewDelegate để xử lý các sự kiện trên chế độ xem bảng đó.

Ví dụ về UIViewController triển khai UITableViewDataSource hoặc UITableViewDelegate là

class ViewController : UIViewController, UITableViewDataSource, UITableViewDelegate {
   override func viewDidLoad() {
   }
   func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) −> Int {
      //
   }
   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) −> UITableViewCell {
   //
   }
}

Ngoài các thuộc tính trên, có một số thuộc tính khác của dạng xem bảng được đề cập bên dưới.

  • Khi chế độ xem bảng sắp xuất hiện, nó sẽ tải lại dữ liệu của nó.

  • Chế độ xem bảng sẽ xóa lựa chọn của nó theo mặc định khi nó xuất hiện.

  • Khi chế độ xem bảng xuất hiện trên màn hình, các chỉ báo cuộn của nó sẽ nhấp nháy. Điều này được thực hiện trong phương thức viewDidAppear ().