Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自定义单元格类的UITableView显示正确的行数,但全部为空_Ios_Swift_Xcode_Uitableview - Fatal编程技术网

Ios 自定义单元格类的UITableView显示正确的行数,但全部为空

Ios 自定义单元格类的UITableView显示正确的行数,但全部为空,ios,swift,xcode,uitableview,Ios,Swift,Xcode,Uitableview,我似乎不明白为什么我的表格中的自定义单元格都是空白的。我已经搜索和尝试了一段时间的建议,但无法找到它。在这一点上,我觉得我错过了一些明显的东西 这是我的,斯威夫特 import UIKit struct Contact { var name:String var title:String var phone:String } class ContactTableViewCell: UITableViewCell { @IBOutlet weak var

我似乎不明白为什么我的表格中的自定义单元格都是空白的。我已经搜索和尝试了一段时间的建议,但无法找到它。在这一点上,我觉得我错过了一些明显的东西

这是我的,斯威夫特

import UIKit

struct Contact {

    var name:String
    var title:String
    var phone:String

}

class ContactTableViewCell: UITableViewCell {

    @IBOutlet weak var contactName: UILabel!
    @IBOutlet weak var contactTitle: UILabel!
    @IBOutlet weak var contactPhone: UILabel!

}

class Contacts:UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var contactTable: UITableView!

    var contactData = [
        Contact(name: "Main Office", title: "Title", phone: "Phone Here"),
        Contact(name: "Joe Bloggs", title: "Title Here", phone: "Phone Number"),
        Contact(name: "John Smith", title: "Another Title", phone: "Another Phone")
    ]

    override func viewDidLoad() {
        super.viewDidLoad()

        contactTable.register(ContactTableViewCell.self, forCellReuseIdentifier: "cellId")
        contactTable.delegate = self
        contactTable.dataSource = self

    }

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

    func numberOfSectionsInTableView(contactTable: UITableView) -> Int {
        return 1
    }

    func tableView(_ contactTable: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let contactCell = contactTable.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as! ContactTableViewCell

        let contact = contactData[indexPath.row]

        contactCell.contactName?.text = contact.name
        contactCell.contactTitle?.text = contact.title
        contactCell.contactPhone?.text = contact.phone

        return contactCell

    }

}
我的IBOutlets肯定是链接的,并且该单元格链接到ContactTableViewClass

这就是我手机的样子

如有任何帮助,我们将不胜感激,谢谢您评论此行

contactTable.register(ContactTableViewCell.self, forCellReuseIdentifier: "cellId")
并将标识符cellId设置为IB中的单元,当您创建原型单元时,不要注册它,因为注册会自动进行

在您的情况下,所有插座均为零

// try contactCell.contactName.text and it' ll crash
contactCell.contactName?.text = contact.name
contactCell.contactTitle?.text = contact.title
contactCell.contactPhone?.text = contact.phone

当你用一个类覆盖IB注册时,这个类的布局是在IB中创建的,作为ContactTableViewCell.self,当你用它的布局以编程方式完全创建这个类时

好吧,该死,这毕竟很简单。非常感谢。我真不敢相信所有的搜索都没有结果