我创建了两个按钮(添加和编辑):
var addButton = UIBarButtonItem(title: "Add", style: .Plain, target: self, action: "tabBarAddClicked"); self.navigationItem.rightBarButtonItems = [self.editButtonItem(), addButton]
这些也有效,我可以使用函数
删除tableView
中的对象
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == UITableViewCellEditingStyle.Delete {
subjects.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
}
}
由此:
var subjects: [Subject] = subjectsData
和
var subjectsData = [ Subject(name: "Investments", semester: 1), Subject(name: "Statistics", semester: 1), Subject(name: "Studium Universale", semester: 2) ]
但是,当我在导航栏中返回上一个屏幕然后返回到屏幕时,阵列中已删除的对象再次出现。但我告诉它使用subjectsData
从数组subjects.removeAtIndex(indexPath.row)
中删除对象。
为什么对象会返回,我该如何更改?
答案 0 :(得分:1)
但我告诉它要从数组subjectData中删除对象 subjects.removeAtIndex(indexPath.row)。
你告诉它要删除主题,而不是subjectData。
例如:
var array1 = [1, 2, 3]
var array2 = array1
array2.removeFirst()
print(array1) // [1, 2, 3]
print(array2) // [2, 3]