自定义表格单元格不显示任何内容 - 斯威夫特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

+0

感谢您的回复。问题是,不过,当我把它们放在viewDidLoad中,我得到一个错误“暧昧使用的tableview numberofrowsinsection的” –

+0

你创建表视图的正确'IBOutlet'? – kientux

+0

说实话,我真的不知道该怎么做...... –