我一直在尝试使用swift使用xcode 6和ios8创建一个表格视图,但我在模拟器上没有得到任何东西,只是显示为空(白色)。
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var myArr = ["one","two","three","four","five"]
@IBOutlet weak var table: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myArr.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
cell.textLabel?.text = self.myArr[indexPath.row]
return cell;
}
}
我甚至试过拖动一些元素,如按钮,开关等,我在模拟器上没有得到任何东西。如果我下载并运行其工作的任何代码。
答案 0 :(得分:1)
“接口”构建器中是否设置了dataSource
table
?您也可以在代码中执行此操作:
override func viewDidLoad() {
super.viewDidLoad()
table.dataSource = self
}
答案 1 :(得分:1)
在这里我的代码,我不明白前一个错误,但我创建了一个新的项目,然后它工作。 我只是将表视图拖到viewcontroller并分配了委托和数据源 然后来到viewcontroller.swift并尝试了
import UIKit
class ViewController: UIViewController {
var items = ["a","b","c"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return self.items.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
var cell:UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "myCell") as UITableViewCell
cell.textLabel?.text = self.items[indexPath.row]
return cell
}
}
答案 2 :(得分:0)
您在numberOfSectionsInTableView
协议中缺少UITableViewDataSource
:
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
答案 3 :(得分:0)
您的表格'委托没有设定。添加:
table.delegate = self
到上面的viewDidLoad
table.dataSource = self
答案 4 :(得分:0)
您错过了委托和dataSource,请在viewDidLoad
中添加以下行table.delegate = self
和
table.dataSource = self