私は、主にTab Bar Controller、Navigation Controller、Table View Controllerの使用に関するストーリーボードのチュートリアルを学習していました。テーブルビューコントローラは、ナビゲーションコントローラに組み込まれています。テーブルビューのセルを表示できないのはなぜですか?
しかし、このアプリを実行すると、テーブルビューのセルが表示されません。私のコードをダブルチェックしましたが、それでも理由を見つけることができませんでした。ここにはストーリーボードの2つのメイジがあります。 Document Outline,click here. View Controller Scene, here.
ViewController.swiftのコードはこちらです。あなたのスクリーンショット( "ドキュメントアウトライン")では
import UIKit
import Foundation
struct Player
{
var name:String?
var game:String?
var rating:Int
init(name:String?, game:String?,rating:Int)
{
self.name = name
self.game = game
self.rating = rating
}
}
let playersData = [
Player(name: "Bill Evans", game: "TTT", rating: 4),
Player(name: "OD", game: "Spin the Bottle", rating: 5),
Player(name: "DB", game: "Texas Holder", rating: 2)]
class PlayersViewController: UITableViewController {
var players:[Player] = playersData
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return players.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
//This method will check to see if there is an existing cell that can be recycled.If not, it will automatically allocate a prototype cell and return it to you.
let cell = tableView.dequeueReusableCellWithIdentifier("PlayerCell", forIndexPath: indexPath)
let player = players[indexPath.row]as Player
cell.textLabel?.text = player.name
cell.detailTextLabel?.text = player.game
return cell
}
}
tableviewデータソースを設定して適切に委任しましたか?あなたのビューコントローラを選択し、テーブルのデリゲートとデータソースをビューコントローラに設定して再実行してください:) –
Ehh、私はtableviewのデータソースとデリゲートをチェックしました。問題はIDインスペクタにあります。カスタムクラスは "UITableViewController"の代わりに "PlayersViewController"にする必要があります。とにかく、 – Magenta