簡體   English   中英

我設置了它,但它不確認 UITableViewDataSource

[英]i set it , but it doesn't confirm UITableViewDataSource

我設置了 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
        }

    }


}

盡管ViewController符合UITableViewDataSource ,但您在錯誤的地方實現了這些方法。 您必須在viewDidLoad之外刪除它們。

此外,確保表視圖數據源/委托連接到視圖控制器本身,無論是從接口構建還是從代碼:

// create an IBOutlet for the table view then:
tableView.dataSource = self
tableView.delegate = self

這可能不會 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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM