自定义表格单元格不显示任何内容 - 斯威夫特2
问题描述:
我试图使自定义表格视图单元格时,我按我的应用程序的注释显示按钮的位置。当我按下按钮时,会出现一个空单元格,我无法找出它出了什么问题。你有什么建议? 由于事先自定义表格单元格不显示任何内容 - 斯威夫特2
类的ViewController:UIViewController中, MKMapViewDelegate,CLLocationManagerDelegate,UIPopoverPresentationControllerDelegate,UITableViewDataSource,的UITableViewDelegate {
struct MyData {
var imagy:UIImage
var title:String
var details:String
}
var tableData: [MyData] = []
@IBOutlet weak var mapView: MKMapView!
let locationManager = CLLocationManager()
var mapItemData:MKMapItem!
let textCellIdentifier = "TextCell"
//TableViewDataSource functions
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return tableData.count
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int{ return 1 }
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// Create a new cell with the reuse identifier of our prototype cell
// as our custom table cell class
let cell = tableView.dequeueReusableCellWithIdentifier("TableViewCell") as! TableViewController
// Set the first row text label to the firstRowLabel data in our current array item
cell.imagy.image = tableData[indexPath.row].imagy
// Set the second row text label to the secondRowLabel data in our current array item
cell.title.text = tableData[indexPath.row].title
// Set the second row text label to the secondRowLabel data in our current array item
cell.details.text = tableData[indexPath.row].details
// Return our new cell for display
tableView.delegate = self
tableView.dataSource = self
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue,
sender: AnyObject?){
// Set any data to be shown on the table view here
}
var picture:[UIImage] = [
UIImage(named: "pic1.jpg")!,
//UIImage(named: "pic2.jpg")!,
//UIImage(named: "pic3.jpg")!,
//UIImage(named: "pic4.jpg")!,
// UIImage(named: "pic5.jpg")!,
// UIImage(named: "pic6.jpg")!,
//UIImage(named: "pic7.jpg")!,
UIImage(named: "pic8.jpg")!, ]
override func viewDidLoad() {
super.viewDidLoad()
这是的TableView类:
类TableViewController:UITableViewCell的{
@IBOutlet weak var imagy: UIImageView!
@IBOutlet weak var title: UILabel!
@IBOutlet weak var details: UILabel!
@IBOutlet weak var exit: UIButton!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
答
cellForRowAtIndexPath
只有当你tableView.dataSource
已经设置调用。你把这个:
tableView.delegate = self
tableView.dataSource = self
在cellForRowAtIndexPath
所以当然你的表中没有任何东西。就像你把钥匙放在房子里,然后关上门。请将它们放入viewDidLoad
。
感谢您的回复。问题是,不过,当我把它们放在viewDidLoad中,我得到一个错误“暧昧使用的tableview numberofrowsinsection的” –
你创建表视图的正确'IBOutlet'? – kientux
说实话,我真的不知道该怎么做...... –