2017-03-01 60 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旁边的第一个响应并单击数据源和委托。

相关问题