私はswiftを初めて使用し、テーブルビューにテキストラベルを表示しようとしていますが、表示されません。以下は私のファイルで、正常にビルドされます。
UI のツリー ネスト: --メイン ビュー コントローラー ----UI テーブル ビュー ------メイン ビュー コントローラー セル
テーブルを間違った場所にリロードしていると思い始めています。
事前に助けていただきありがとうございます!
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)
}
}