我是xcode和Objective-C的新手。这是我的问题:
当尝试设置它并构建它时,它给我一个错误,说我需要以某种方式将我的表视图连接到视图控制器。
我知道它与数据源和表视图委托有关,但我不知道如何将表视图连接到数据源和视图控制器的委托。
有人可以告诉我怎么做,或者将我链接到一个易于遵循的指南吗?
由于
答案 0 :(得分:1)
最简单的方法是创建一个新的Swift或Objective-C类并使用它扩展UITableViewController。这将为您创建一个关于如何编写UITableView DataSource和Delegate的完美示例代码,可以将其复制。
之后,在viewdidload中将UITableViews委托和数据源属性设置为self,并实现UITableViewDataSource,UITableViewDelegate。
修改强>
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var myTable: UITableView!
var myDataArray: NSArray!
override func viewDidLoad() {
super.viewDidLoad()
myDataArray = NSArray(objects: "Peter", "Paul", "Marry")
myTable.dataSource = self
myTable.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
//MARK: TableView DataSource
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myDataArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell
if (cell == nil) {
cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
}
cell?.textLabel.text = myDataArray.objectAtIndex(indexPath.row) as NSString
return cell!
}
//MARK: TableView Delegate
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
}
}
我快速为您提供了一些Swift示例代码,您可以在其中查看如何将表视图与您的类的DataSource和Delegate连接。