私はUILabelとUITextFieldを持つカスタムtableViewセルを持っています。私は、textFieldのデータを辞書の配列に追加したいと思っています([label:textfield])。 textFieldDidEndEditingを使用してtextFieldデータを取得できますが、同じテキストフィールドのセルラベルを取得する方法がわかりません。私はそのセルのindexPathにアクセスする必要があると思います。私はDidSelectRowに通知を送信しようとしましたが、それはあまりにも複雑に思えました。カスタムセルラベルとテキストフィールドのテキストを辞書の配列に追加する
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: expenseCell, for: indexPath) as! LineItemTableViewCell
let sectionsArray = expenses[sections[indexPath.section]]
let expenseItem = sectionsArray?[indexPath.row]
cell.budgetLineItemView.label.text = expenseItem!
cell.budgetLineItemView.lineItemTextField.delegate = self
return cell
}
//MARK: UITextField Delegate
func textFieldDidBeginEditing(_ textField: UITextField) {
textField.layer.borderColor = UIColor.blue.cgColor
textField.keyboardType = .decimalPad
textField.becomeFirstResponder()
}
func textFieldDidEndEditing(_ textField: UITextField) {
//get textfield text after editing here
}
これは私の辞書です:
var expenses:[String:[[String:Double]]] = ["Housing":[["Rent/Mortgage":0.0],
["Gas":0.0],["Water/Power":0.0],["Cable/Internet":0.0],["Garbage":0.0],["Property
Tax":0.0],["Homeowners/Renters Insurance":0.0]],"Transportation":[["Car
Payment":0.0],["Car Insurance":0.0],["Roadside Insurance":0.0]],"Other Expenses":
[["Health Insurance":0.0],["Life Insurance":0.0],["Disability Insurance":0.0],
["Student Loans":0.0],["Cell Phone":0.0],["Other":0.0]]]
tableView.visibleCells()内のセルに '! [ //ここでセルで何かを行う} ' – iphonic
これは、表示されている各セルの各要素が何であるかを見ることができますが、それらのセルの値を更新して辞書に追加することはできませんアップデート) –
更新できませんか?あなたが 'NSArrayまたはNSDictionary'を' NSMutableArrayまたはNSMutableDictionary'を使用して値を変更した後にテーブルをリロードする必要がある場合、オブジェクトの型は何ですか。 – iphonic