2
検索バーを実装しました。私は食べ物だけを探しても大丈夫です。しかし、検索結果から食品を編集しようとすると、検索配列(foodSearching)のみが変更されますが、元の配列(食品)は変更されません。だから、私はテーブルビューを編集するとき、元の配列(食品)のインデックスパスを知る必要があります。助けはありますか?詳細なテーブルビューの元のセルインデックスを確認するにはどうすればよいですか?
selectedIndexPath
は、私のようにindexPath
を使用しないことをお勧め
@IBAction func unwindToFoodList(sender: UIStoryboardSegue) {
if let sourceViewController = sender.sourceViewController as? FoodViewController, food = sourceViewController.food {
if let selectedIndexPath = tableView.indexPathForSelectedRow {
// Update an existing food.
if(isSearching){
foodSearching[selectedIndexPath.row] = food
// foodSearching array is temporary..
//need to find indexpath for foods array(original array)and update it as well...!!
tableView.reloadRowsAtIndexPaths([selectedIndexPath], withRowAnimation: .None)
}else{
foods[selectedIndexPath.row] = food
tableView.reloadRowsAtIndexPaths([selectedIndexPath], withRowAnimation: .None)
}
} else {
// Add a new food.
let newIndexPath = NSIndexPath(forRow: foods.count, inSection: 0)
foods.append(food)
tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Bottom)
}
// Save the foods.
saveFoods()
}
}
セルを編集しないでください。データモデルを編集し、テーブルをリロードします。あなたのモデルが大規模でない限り、テーブル全体をリロードするだけです。 – Gargoyle