私はTableViewに表示されるUITableViewCellのサブクラスを持っています。各セルにはテキストフィールドがあります。 textFieldDidEndEditing関数が呼び出されると、入力したテキストを管理対象オブジェクトコンテキストのNSManagedObjectの属性として保存します。UITableViewCellサブクラスのindexPathを取得
この関数は、私のtableViewCellクラスに実装されています。
func textFieldDidEndEditing(textField: UITextField) {
let viewController = ViewController()
let indexPath: NSIndexPath!
viewController.updateCommitsInMOC(self, atIndexPath: indexPath!)
}
そして、これは、それが呼び出す関数です。この関数は、私のViewControllerクラスでtableViewCellsで構成されてテーブルビューを制御1を実装されます。
私はすべての時間を節約する動作を実装する他の方法には、もちろん、任意の提案に開いている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()
}
ユーザはテキストフィールドの編集を終了する。
あなたが実際に問題を抱えているのですか?このような なぜあなたはセルの代わりに(または同様に)パラメータとしてテキストを渡さないのですか?同じことがステータスのものになります – Wain
@Wain私はそれを行う方法を知らないでしょう。しかし、私は基本的な問題はまだ残っていると思う:私は自分のテーブルビュー内のすべてのセルを通過し、セル内に含まれているテキストフィールドの内容を管理オブジェクトコンテキストに保存する必要があります。内容を変数として取り、それを実装して各テーブルビューのセルによって適切に呼び出されるようにする関数があると考えることができる場合は、答えを残してください! – Jonas
あなたは既にテキストフィールドが編集されたときにそれをするコードを持っていますが、あなたの実際の問題がまだ分かりません。あなたはあなたが持っている解決策に満足していないか、実際の問題があり、あなたが持っているものがうまくいかないことを意味していますか? – Wain