Ich habe eine Unterklasse von UITableViewCell, die in einer TableView angezeigt wird. Jede Zelle hat ein Textfeld. Wenn die Funktion 'textFieldDidEndEditing' aufgerufen wird, möchte ich den eingegebenen Text als Attribut eines NSManagedObject in meinem verwalteten Objektkontext speichern.Get indexPath in UITableViewCell Unterklasse
Diese Funktion wird in meiner tableViewCell Klasse implementiert:
func textFieldDidEndEditing(textField: UITextField) {
let viewController = ViewController()
let indexPath: NSIndexPath!
viewController.updateCommitsInMOC(self, atIndexPath: indexPath!)
}
Und dies ist die Funktion es nennt. Diese Funktion wird in meiner Viewcontroller Klasse implementiert, die eine, die die Tableview steuert, die aus dem tableViewCells gemacht wird:
func updateCommitsInMOC(cell: CommitTableViewCell, atIndexPath indexPath: NSIndexPath) {
// Fetch Commit
let commit = fetchedResultsController.objectAtIndexPath(indexPath) as! Commit
// Update Cell
commit.contents = cell.commitContents.text!
if cell.repeatStatus.selectedSegmentIndex == 1 { commit.repeatStatus = true }
saveManagedObjectContext()
}
Ich bin natürlich offen für alle Vorschläge, andere Möglichkeiten, um das Sparverhalten jedes Mal zu implementieren Der Benutzer ist fertig mit der Bearbeitung des Textfelds.
Sie haben tatsächlich ein Problem? Warum übergibst du den Text nicht als Parameter anstelle der Zelle (oder so gut)? Das gleiche gilt für die Status-Sache – Wain
@Wain würde ich nicht wissen, wie das geht. Aber ich glaube, das Grundproblem bleibt bestehen: Ich muss jede Zelle in meiner Tabellenansicht durchgehen und den Inhalt eines in der Zelle enthaltenen Textfelds in den Kontext des verwalteten Objekts speichern. Wenn Sie sich eine Funktion vorstellen können, die nur den Inhalt als Variable akzeptiert und weiß, wie sie implementiert werden muss, damit sie von jeder Tabellenansichtszelle entsprechend aufgerufen wird, hinterlassen Sie bitte eine Antwort! – Jonas
Sie haben bereits Code, der das tut, wenn ein Textfeld bearbeitet wird, ich bin immer noch nicht sicher, was Ihr tatsächliches Problem ist. Sie sind einfach nicht glücklich mit der Lösung, die Sie haben, oder es gibt ein tatsächliches Problem, das bedeutet, dass das, was Sie haben, nicht funktioniert? – Wain