【发布时间】:2016-10-27 10:33:44
【问题描述】:
首先,我只想说我是 iOS 编程的新手,这是我的第一个应用程序,所以如果我使用了不正确的术语,我深表歉意。
我的应用程序已设置好,以便我可以使用 Core Data 添加一个事件,然后 2 个 tableViews 将使用来自该事件的信息进行更新。我配置的第一个 tableView 以便我可以滑动以从核心数据中删除单元格和信息。
滑动删除代码:
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
// Enables swipe to delete for cells
if editingStyle == .Delete {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let moc = appDelegate.managedObjectContext
moc.deleteObject(events[indexPath.row])
appDelegate.saveContext()
events.removeAtIndex(indexPath.row)
tableView.reloadData()
}
}
但是,在另一个 tableView 中,我设置了 UITableViewRowAction 编辑按钮,以便在单击时将用户带到 EditViewController ,他们可以在其中编辑单元格。
UITableViewRowAction 代码:
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let editAction = UITableViewRowAction(style: UITableViewRowActionStyle.Default, title: " Edit ") { (action , indexPath ) -> Void in
self.editing = false
self.performSegueWithIdentifier("edit", sender: self)
print("Edit button pressed")
}
return [editAction]
}
我想要这个 EditViewController 中的一个按钮来删除单元格和单元格的核心数据信息,就像我在第一个 tableView 中所做的那样。在 EditViewController 中,我尝试使用与第一个 tableView 类似的代码...
var events = [Events]()
@IBAction func deleteButton(sender: AnyObject) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let moc = appDelegate.managedObjectContext
moc.deleteObject(events[indexPath.row])
appDelegate.saveContext()
events.removeAtIndex(indexPath.row)
navigationController?.popViewControllerAnimated(true)
}
但这不起作用,因为我无法访问我单击的单元格的 indexPath。无论如何,当我单击 UITableViewRowAction 编辑按钮时,我可以记录单元格的 indexPath 并在 EditViewController 中使用该信息?
【问题讨论】:
-
在你的 deleteButton 中使用 tag 属性并设置 indexpath.row ,或者创建 UIButton 的子类并在其中定义 indexpath 属性
-
如果我正在创建 UIButton 的子类,我将如何定义单击的单元格的 indexPath。我不确定这将如何工作,你能举个例子吗?
-
您能否确认:
deleteButton代码是在(第二个)表格视图控制器中,还是在您的编辑操作所指向的编辑视图控制器中? -
在编辑视图控制器中
-
请问您能出示
prepareForSegue代码吗?
标签: ios uitableview core-data swift2 xcode7