Ich habe 2 Abschnitte mit jeweils 16 Zeilen, und wie Sie alle Textfield-Wert in der Tabellenansicht Zelle erhalten? Ich möchte es speichern, wenn ich auf Speichern klicke.Textfeld in der Tabellenansichtszelle abrufen, wenn Sie auf die Schaltfläche Speichern tippen und im Wörterbuch speichern?
und ich retrive bereits simulieren Daten aus Firebase-Datenbank in String: AnyObject, und zeigen Sie es in der Tabellenansicht.
Wie bekomme ich einen Wert wie textfield oder switch in tableviewCell?
import UIKit
import Firebase
import FirebaseDatabaseUI
class SettingLabelTableViewController: UITableViewController, UITextFieldDelegate {
var BitArray:[String] = ["M0","M1","M2","M3","M4","M5","M6","M0","M8"
,"M9","M10","M11","M12","M13","M14","M15"]
var WordArray:[String] = ["D0","D1","D2","D3","D4","D5","D6","D0","D8"
,"D9","D10","D11","D12","D13","D14","D15"]
var DeviceKey:String?
var Ref: FIRDatabaseReference!
var dict = [String:AnyObject]()
var allCellsText = [String]()
@IBAction func SaveButton(_ sender: UIBarButtonItem)
{
/*self.Ref.setValue(dict, withCompletionBlock:
{ (error, dbref) in
})*/
}
override func viewDidLoad()
{
super.viewDidLoad()
Ref = device.child("DEVICE").child(DeviceKey!).child("SETTINGS").child("LABEL")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
Ref.observeSingleEvent(of: .value, with: { (snapshot) in
if !snapshot.exists(){
print("not exist")
csGolbal.g_NameAry.removeAll()
self.dict.removeAll()
}
else{
self.dict.removeAll()
self.dict = (snapshot.value as? [String: AnyObject])!
/*for item in snapshot.value as! [String : String]{
csGolbal.g_NameAry.append([item.key:item.value])
}*/
}
self.tableView.reloadData()
})
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
override func numberOfSections(in tableView: UITableView) -> Int
{
return 2
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
if section == 0
{
return BitArray.count
}
else
{
return WordArray.count
}
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCell(withIdentifier: "LabelNameCell", for: indexPath) as! LabelNameTableViewCell
cell.LabelTitle.text = BitArray[indexPath.row]
if dict.count > 0{
cell.txtName.text = dict["M"+String(indexPath.row)] as? String ?? "null"
}
return cell
}
mein tableviewCell
class LabelNameTableViewCell: UITableViewCell
{
@IBOutlet weak var LabelTitle: UILabel!
@IBOutlet weak var txtName: UITextField!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
Ich werde es versuchen, thx – benjamin
ist dies in der dynamischen Zelle verwendet werden kann? Konsole sagte: unerwartet gefunden Null beim Entpacken ein optionaler Wert – benjamin
Entschuldigung für die späte Antwort, es scheint, Sie müssen Zelle casten, ich bearbeitete Antwort –