iOS 在 UIViewController 中手动增加 TableView 出现 Type 'SomeViewController' does not confirm to protocol 'UITableViewDataSource' 问题的解决办法
许多时候我们都有在普通的继承自 UIViewController 的控制器中使用 TableView 的需求,这时候就需要当前控制器类继承 UITableViewDelegate 和 UITableViewDataSource,然后再初始化:
@IBOutlet weak var firstTableView: UITableView! override func viewDidLoad() { super.viewDidLoad() firstTableView.delegate = self firstTableView.dataSource = self }
这时候,firstTableView.dataSource = self 这一行会报错:
Type 'SomeViewController' does not confirm to protocol 'UITableViewDataSource'
解决方案如下:
在该类中新增如下方法:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 3 } func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("UserCenter", forIndexPath: indexPath) as UITableViewCell cell.textLabel.text = indexPath.row.description return cell }
最终运行结果如下:
← 如何修改 UINavigationController、UINavigationBar 中 navigationItem 左侧 “返回” 按钮的名称
iOS 8 录音重放出现 OSStatus error 1685348671 / 2003334207 问题的解决办法 →
评论:
2015-09-09 11:30
你的类应该是实现了UITableViewDelegate和UITableViewDataSource这两个protocol吧?
在Datasource中有两个非选择性方法必须实现。