// abide by the protocol , directly followed by the inherited parent class , + protocol
class Viewcontroller: Uiviewcontroller {
Override func viewdidload () {
Super. Viewdidload ()
// add a TableView control
Let TableView = UITableView()
TableView. frame = self. View. bounds
self. View. Addsubview (tableView)
// Set data source , set data
TableView. DataSource = self
TableView. delegate = self
}
}
equivalent to the category in OC
extension viewcontroller : uitableviewdatasource
{
//mark:- Implementing a data source method
func numberofsectionsintableview (tableView: uitableview), Int {
return 1
}
func tableView (tableView: uitableview, numberofrowsinsection section: int), int {
return -
}
func tableView (tableView: uitableview, Cellforrowatindexpath indexpath: nsindexpath)- > UITableViewCell {
let ID: String = "Cell"
var cell = TableView. Dequeuereusablecellwithidentifier(ID)
if cell = = Nil {
Cell = UITableViewCell(style: uitableviewcellstyle. Default, Reuseidentifier:id)
}
Cell?. Textlabel?. text = " test Data :\(indexpath. Row) "
return cell!
}
}
extension viewcontroller : uitableviewdelegate
{
//mark:- Implementing Proxy Method
func tableView (tableView: uitableview, Didselectrowatindexpath indexpath: nsindexpath) {
Print (indexpath. row)
}
}
Uitableviewdatasource and uitableviewdelegate can be put together .
Use of TableView in 21.Swift