Я установил его, но он не подтверждает UITableViewDataSource - PullRequest
1 голос
/ 24 апреля 2019

У меня установлен источник данных tableview, но он не распознает его Тип 'ViewController' не соответствует протоколу 'UITableViewDataSource'

import UIKit

class ViewController: UIViewController ,UITableViewDataSource,UITableViewDelegate{



    override func viewDidLoad() {
        super.viewDidLoad()

        var contact : [pedped]=[]

        let asghar = pedped()
        asghar.nmae="asghar "
        asghar.lname="ghasemi"
        asghar.image="asghar"

        let akbar = pedped()
        akbar.nmae="akbar "
        akbar.lname="askj"
        akbar.image="asgkajsjkashar"


        contact.append(asghar)
        contact.append(akbar)



        func numberOfSections(in tableView: UITableView) -> Int {
            return 1
        }
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return contact.count
        }

        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell=tableView.dequeueReusableCell(withIdentifier: "id", for: indexPath)as!custom
            let contacts = contact[indexPath.row]
            cell.lablename.text = contacts.nmae
            cell.lastnamelable.text = contacts.lname
            return cell
        }

    }


}

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Хотя ViewController соответствует UITableViewDataSource, вы реализуете методы в неправильном месте. Вы должны удалить их снаружи viewDidLoad.

Также убедитесь, что источник данных / делегат табличного представления подключен к самому контроллеру представления, будь то из сборки интерфейса или из кода:

// create an IBOutlet for the table view then:
tableView.dataSource = self
tableView.delegate = self
0 голосов
/ 24 апреля 2019

Это, вероятно, не будет работать на 100%, но, по крайней мере, покажет вам лучший способ организовать ваш код

import UIKit

class ViewController: UIViewController {
    var contact = [pedped]() // Int

    override func viewDidLoad() {
        super.viewDidLoad()

        let asghar = pedped()
        asghar.nmae="asghar "
        asghar.lname="ghasemi"
        asghar.image="asghar"

        let akbar = pedped()
        akbar.nmae="akbar "
        akbar.lname="askj"
        akbar.image="asgkajsjkashar"


        contact.append(asghar)
        contact.append(akbar)
    }
}

extension ViewController: UITableViewDataSource 

    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return contact.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell=tableView.dequeueReusableCell(withIdentifier: "id", for: indexPath)as!custom
        let contacts = contact[indexPath.row]
        cell.lablename.text = contacts.nmae
        cell.lastnamelable.text = contacts.lname
        return cell
    }
}

extension ViewController: UITableViewDelegate {
   // Put any UITableViewDelegate functions here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...