我是 swift 的新手,我试图让我的文本标签显示在我的表格视图上,但它只是没有显示出来。以下是我的文件,它确实成功构建。
UI的树巢:--Main View Controller ----UI Tabel View ------Main View Controller Cell
我开始认为我在错误的地方重新加载表。
我提前感谢您的帮助!
当我删除 self.mainTableView.reloadData() 时,不会显示任何单元格。此时,我仍然可以单击单元格,它们确实会使用以下调试器行进行响应:
You selected Number 0
You selected Number 1
You selected Number 2
MainViewController.swift
import Foundation
import Locksmith
import UIKit
import Alamofire
import SwiftyJSON
import Alamofire
import JWTDecode
class MainViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var userFeed = [UserFeedRow]()
@IBOutlet weak var mainTableView: UITableView!
override func viewDidLoad() {
mainTableView.registerClass(MainViewTableViewCell.self, forCellReuseIdentifier: "mainTableViewCell")
mainTableView.delegate = self
mainTableView.dataSource = self
mainTableView.separatorStyle = UITableViewCellSeparatorStyle.None
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.userFeed.count
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
println("You selected Number \(indexPath.row)")
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->
UITableViewCell {
println("celler \(indexPath.row)")
var cell:MainViewTableViewCell = self.mainTableView.dequeueReusableCellWithIdentifier("mainTableViewCell", forIndexPath:indexPath) as MainViewTableViewCell
let feedRow = userFeed[indexPath.row]
println(feedRow.title)
cell.mainTableViewCellTitle?.text = feedRow.title
return cell
}
override func viewDidAppear(animated: Bool) {
// Alamofire GET user/user_feed
// Display user feed in tableview inside of uiviewcontroller
loadUserFeed()
}
func loadUserFeed(){
println("loadUserFeed")
let api = API()
api.getUserFeed(){
responseObject, error in
var json = JSON(responseObject!)
if error == nil{
// get feed
var responseFeed = json["feed"]
//println(json)
for (index: String, subJson: JSON) in responseFeed {
var aTitle = subJson["title"].stringValue
println(aTitle)
// save object to array here
var row = UserFeedRow(title: aTitle)
self.userFeed.append(row) // Appending userfeed
}
self.mainTableView.reloadData()
}
}
}
}
自定义 TableView 单元格
import Foundation
import UIKit
class MainViewTableViewCell: UITableViewCell{
@IBOutlet weak var mainTableViewCellBackgroundImage: UIImageView!
@IBOutlet weak var mainTableViewCellTitle: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}