Swift: TableView в ViewController

У меня есть ViewController в MainstoryBoard. Я добавил TableView к нему.

MainStoryBoard:

введите описание изображения здесь

Кроме того, у меня есть массив вне класса ViewController, и я хочу, чтобы объекты внутри массива отображались в TableView.

Я не могу понять, как это сделать. Я подключил делегат между TableView и ViewController.

Ответы

Ответ 1

Вы добавляете новую переменную экземпляра табличного представления ниже объявления класса.

@IBOutlet weak var tableView: UITableView!

Чтобы соответствовать протоколам UITableViewDelegate и UITableViewDataSource, просто добавьте их через запятую после UIViewController в объявлении класса

После этого нам нужно реализовать tableView(_:numberOfRowsInSection:), tableView(_:cellForRowAtIndexPath:) и tableView(_:didSelectRowAtIndexPath:) в классе ViewController и оставить их пока пустыми

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 в комментариях, вам также нужно установить self.tableView.delgate = self и self.tableView.dataSource = self в методе viewDidLoad (или в Storyboard тоже работает хорошо).

Ответ 2

Возможно, я опоздаю, и вы, возможно, уже исправили это. Ошибка, которую вы получаете, связана с вашей переменной или константой, возвращающей значение nil. чтобы проверить это, вы можете присвоить ему значение (жесткий код) и проверить полный код, если он работает, а затем изменить его на свой массив, к сожалению, я делаю материал программно и не очень хорошо знаком с раскадрой.

если вы поделитесь своим кодом, мы будем вам помогать, если он еще не отсортирован.