2017-03-01 59 views
1

我試圖創建一個UITableView作爲我的UIViewController的自定義子視圖,但數據未顯示在表中。我懷疑問題是我的delegatedatasource表未設置。我如何鏈接它們? UITableViewDataSource似乎在UITableView類中不起作用?在自定義UITableView中設置委託和數據源

的UIViewController

let projectDeck = ProjectDeck() 
    projectDeck.frame = CGRect(x: 0, y: statusBarHeight + 132, width: screenWidth, height: screenHeight - 132) 
    self.view.addSubview(projectDeck) 

的UITableView

class ProjectDeck: UITableView { 

    var items = ["Test", "TestTest", "TestBestWestVest"] 

    override func numberOfRows(inSection section: Int) -> Int { 
     return items.count 
    } 

    override func cellForRow(at indexPath: IndexPath) -> UITableViewCell? { 
     let cell = UITableViewCell() 
     cell.textLabel?.text = items[indexPath.row] 
     return cell 
    } 

} 
+0

projectDeck.delegate = self,與數據源相同(如果您的UIViewController是委託或數據源)**請記住**,您需要爲您的tableView單元格提供正確的高度。 https://developer.apple.com/reference/uikit/uitableviewdelegate/1614998-tableview – 2017-03-01 04:40:05

+0

[在Swift中以編程方式設置uitableview的委託和數據源的可能的重複](http://stackoverflow.com/questions/27022136/set-delegate -and-datasource-of-uitableview-programmatically-in-swift) – 2017-03-01 04:42:26

+0

如何使單元出列:http://stackoverflow.com/questions/24471954/how-to-use-dequeuereusablecellwithidentifier-in-swift – 2017-03-01 04:43:58

回答

0

集委託和數據源在您的viewcontrloller

即在視圖 - 控制

projectdesc.tableview.datasource = self 
projectdesc.tableview.delegate = self 

,並實現了viewccontroller

像cellforRow的tableview的方法,並確保您要添加的tableview作爲一個子視圖在視圖 - 控制適當

0

您需要添加數據源和委託參考。

你可以通過插座或故事板來實現。

使用奧特萊斯:

yourTableView.datasource = self 
yourTableView. delegate = self 

使用故事板

按住Ctrl鍵表視圖的viewController旁邊的第一個響應並單擊數據源和委託。

相關問題