UITableViewController 和 UIViewController 的區別是什麼?


UITableViewController 和 UIViewController 是 iOS UIKit 框架中的兩個不同物件。兩者用於不同的目的。

UIViewController 類管理一個檢視控制器,它負責檢視控制器內發生的事件。此類知道檢視控制器上發生的事件,例如 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 的方法。如果該 ViewController 除了表格檢視之外沒有任何其他內容,則主要使用 UITableViewController。

如果檢視控制器除了 tableView 之外還有其他內容,我們通常將其符合 UIViewController 並實現表格檢視的協議,即 UITableViewDataSource 用於為該表格分配一些資料來源,以及 UITableViewDelegate 用於處理該表格檢視上的事件。

實現 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() 方法中完成的。

更新於:2019年7月30日

480 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.