この質問は以前は聞いたことがありますが、解決策が見つかりませんでした。 私はとスタティックcells
を持っています。私は4 sections
(これまで)を持っていて、それぞれ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
が表示されますが、フィールドは空です。
オブジェクトのセルのフィールドをどのように埋めることができますか?事前にありがとうござい これは私のTableViewController
の概要です:どのように私はどのセルを充填することを指定します(私は他のセクションの私の他の細胞にも、それを必要とする)
更新する必要がありますこのような長い質問にごめんなさい
の複雑さを通過する必要が 'if'ステートメントreacheではありませんd?また、 'indexPath.section'をチェックして、セルを生成しているセクションを知り、それに応じてセルを作成することもできます。 –
@DávidPásztorいいえ私は 'else'ステートメントに直接行きますが、' if indexPath.section == 0'にコードを入れてみましたが、まだ空白です。 –
'Storyboard'でセルクラスを設定し、識別子を正しく再利用していますか?また、 'cellForRowAt'の中に' indexPath.section'を印刷して、条件付きでセルを対応するクラスにキャストできるかどうか確認してください。 –