我无法在另一个控制器的 for 循环中以编程方式创建视图。父控制器是一个 tableviewcell,我正在循环访问 CNContact 对象中的一堆电话号码。对于联系人拥有的每个电话号码,我希望创建我的自定义视图并将其添加到 tableviewcell 并使其垂直堆叠。
到目前为止,我设法创建了视图并将其添加到 tableviewcell 但无法传递数据。这是我正在努力解决的从一个控制器到另一个控制器的数据传递。
这是我的代码:
ContactListTableViewCell.swift
import UIKit
import Contacts
class ContactListTableViewCell: UITableViewCell {
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var phonenumberView: UIView!
func configureCell(contact: CNContact) {
titleLabel.text = "\(contact.givenName) \(contact.familyName)"
for phoneNumber in contact.phoneNumbers {
let view = self.createContactListTableViewTelephoneRow(telephone: phoneNumber)
self.phonenumberView.addSubview(view)
}
}
func createContactListTableViewTelephoneRow(telephone: Any) -> UIView {
let controller = ContactListTableViewTelephoneRow()
let view = UINib(nibName: "ContactListTableViewTelephoneRow", bundle: nil).instantiate(withOwner: controller, options: nil)[0] as! UIView
return view
}
}
Main.storyboard 中的 contactListTableViewCell 原型
ContactListTableViewTelephoneRow.swift
class ContactListTableViewTelephoneRow: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var telephoneLabel: UILabel!
@IBOutlet weak var telephoneTypeLabel: UILabel!
func setData(telephoneLabelText: String, telephoneTypeLabelText: String) {
telephoneLabel?.text = telephoneLabelText
telephoneTypeLabel?.text = telephoneTypeLabelText
}
}
ContactListTableViewTelephoneRow.xib
任何帮助将非常感激。谢谢你。