2016-08-05 62 views
0

Ich habe Probleme beim Kombinieren eines Vor- und Nachnamens für diesen Code, den ich ausführen, um es zu einer Tableviewcell zu aktualisieren. Es sieht so aus, als würde es weder den Vor- noch Nachnamen speichern und es nur ersetzen, wenn ich einen neuen Text eintippe. Ich bin mir nicht sicher, was vor sich geht und ich bin sicher, dass die Zeilennummern, die ich in meiner .plist verwende, übereinstimmen Code. Jede Hilfe mit dieser oder anderen Alternativen wird geschätzt.iOS Xcode Swift Kombinieren von Eingabe FirstName und LastName in einen FullName Problem

func textfieldTextWasChanged(newText: String, parentCell: CustomCell) { 
    let parentCellIndexPath = tblExpandable.indexPathForCell(parentCell) 

    let currentFullname = cellDescriptors[0][12]["primaryTitle"] as! String 
    let fullnameParts = currentFullname.componentsSeparatedByString(" ") 

    var newFullname = "" 

    if parentCellIndexPath?.row == 13 { 
     if fullnameParts.count == 2 { 
      newFullname = "\(newText) \(fullnameParts[1])" 
     } 
     else { 
      newFullname = newText 
     } 
    } 
    else { 
     newFullname = "\(fullnameParts[0]) \(newText)" 
    } 

    cellDescriptors[0][12].setValue(newFullname, forKey: "primaryTitle") 
    tblExpandable.reloadData() 
} 

Antwort

0

Was höchstwahrscheinlich passiert ist, dass, wenn Sie tblExpandable.reloadData sind() aufgerufen wird, wird cellForRowAtIndexPath genannt zu werden, und es ist Ihre Änderungen überschreiben, die Sie hier machen. Sie müssen entweder ein Zellen-Caching durchführen oder möglicherweise einen UIScrollView anstelle eines UITableView verwenden.