我确信以前有人问过这个问题,但我找不到解决方案。 我有一个UITableViewController
与静态cells
,我有4 sections
(到目前为止),并且每个section
只有1 cell
。UITableViewController使用值填充不同部分的单元格
这是第一部分
的第一单元的一部分,这是在相应TableViewCell文件,
AllgemeineProduktdatenCell.swift
class AllgemeineProduktdatenCell: UITableViewCell{
// MARK: - Outlets
@IBOutlet weak var AngebotsnameTextF: UITextField!
@IBOutlet weak var Referenznummer: UITextField!
@IBOutlet weak var modelTextF: UITextField!
@IBOutlet weak var bemerkungTextF: UITextView!
@IBOutlet weak var extrasTextF: UITextView!
@IBOutlet weak var ursprLadenPreisEuroTextF: UITextField!
@IBOutlet weak var ursprLadenPreisCentTextF: UITextField!
@IBOutlet weak var AngebotsPreisEuroTextF: UITextField!
@IBOutlet weak var AngebotsPreisCentTextF: UITextField!
// Bereich Möbel
@IBOutlet weak var bereichMoebelLabel: UILabel!
@IBOutlet weak var bereichMoebelPicker: UIPickerView!
@IBAction func showHideBereichMoebelPicker(_ sender: Any) {
if bereichMoebelPicker.isHidden{
bereichMoebelPicker.isHidden = false
} else{
bereichMoebelPicker.isHidden = true
}
}
// Hersteller
@IBOutlet weak var chosenHerstellerLabel: UILabel!
@IBOutlet weak var herstellerPickerView: UIPickerView!
@IBAction func showHideHerstellerPicker(_ sender: UIButton) {
if herstellerPickerView.isHidden{
herstellerPickerView.isHidden = false
} else{
herstellerPickerView.isHidden = true
}
}
// Anzeigen auch auf eigener Webseite
@IBOutlet weak var anzeigenAuchAufEigenerWebseiteSwitch: UISwitch!
@IBAction func anzeigenAufWebsiteSwitch(_ sender: Any) {
}
// Start des Angebot
@IBOutlet weak var startDesAngebotChosenDateLabel: UILabel!
@IBOutlet weak var startDesAngebotDatePicker: UIDatePicker!
@IBAction func hideShowStartDesAngebotDP(_ sender: Any) {
if startDesAngebotDatePicker.isHidden{
startDesAngebotDatePicker.isHidden = false
} else{
startDesAngebotDatePicker.isHidden = true
}
}
func setUpAllgemeineFields(product: ItemsClass){
AngebotsnameTextF.text = "ABED"//product.title
Referenznummer.text = product.artikel_nummer
modelTextF.text = product.typ_kategorie
}
}
想象一下,我每个单元格都有类似的文件。
,这是我的主要浏览文件:
AddEditVC.swift
class AddEditVC: UITableViewController {
var product_obj: ItemsClass!
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 4
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "AllgemeineProduktdaten") as? AllgemeineProduktdatenCell{
cell.setUpAllgemeineFields(product: product_obj)
return cell
} else{
print("FFFFFFAAAAAILD")
return AllgemeineProduktdatenCell()
}
}
}
当我运行该应用程序的细胞是空白的,我甚至看不到我View
秒,但我注释掉cellForRowAt
函数,然后我可以看到我的outlets
,但是这些字段是空的。
我该如何填充我的细胞与我的对象的领域?我应该怎么指定哪个小区被填充(我需要它也为我的其他部分的其他细胞)
UPDATE: 这是我TableViewController
预先感谢您的概述并且对于如此长的问题感到抱歉
复杂性是'if'声明中游d?您可能还想检查'indexPath.section'以知道您正在为单元格生成哪个部分并相应地创建单元格。 –
@DávidPásztor不,我直接去'else'语句,我也试着把代码放在'if indexPath.section == 0'中,但它仍然是空白的。 –
你确定你已经在'Storyboard'中正确设置了单元类和重用标识符吗?您还应该尝试在'cellForRowAt'内打印'indexPath.section'并检查是否可以有条件地将该单元格转换为其相应的类。 –