web-dev-qa-db-ja.com

Swift:ViewControllerのTableView

ViewControllerMainstoryBoardがあります。 TableViewを追加しました。

MainStoryBoard:

enter image description here

さらに、ViewControllerクラスの外部に配列があり、配列内のオブジェクトをTableViewに表示する必要があります。

方法がわかりません。 TableViewViewControllerの間にデリゲートを接続しました。

27
Eliko

クラス宣言の下に新しいテーブルビューインスタンス変数を追加します。

_@IBOutlet weak var tableView: UITableView!
_

UITableViewDelegateおよびUITableViewDataSourceプロトコルに準拠するには、クラス宣言のUIViewControllerの後にカンマで区切って追加します

その後、ViewControllerクラスにtableView(_:numberOfRowsInSection:)tableView(_:cellForRowAtIndexPath:)およびtableView(_:didSelectRowAtIndexPath:)メソッドを実装し、現在は空のままにする必要があります。

_class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    ...

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0 // your number of cells here
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        // your cell coding 
        return UITableViewCell()
    }

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        // cell selected code here
    }
}
_

コメントで@ErikPが言及したように、viewDidLoadメソッドで_self.tableView.delgate = self_および_self.tableView.dataSource = self_を設定する必要もあります(またはStoryboardでもうまく機能します)。

49

私は遅れているかもしれません、あなたは今までにこれを修正しているかもしれません。取得しているエラーは、変数または定数がnil値を返していることが原因です。これをテストするには、それに値を割り当て(ハードコード)、動作している場合は完全なコードをチェックしてから、それを配列に変更します。

コードを共有する場合、これがまだ並べ替えられていない場合はお手伝いします。

1
Fullpower