在Swift中,如何从UITableView中抓取object id并根据object id删除object?

In Swift, how to grab object id from UITableView and delete object based on object id?

我不知道如何在用户 select 之后从 UITableView 中获取对象 ID,在另一个视图控制器中,我想根据我已经从前一个获取的对象 ID 删除对象。

UITableView

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        /* grab object id here and pass to NSUserDefault*/

        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

        let deleteViewController = storyBoard.instantiateViewControllerWithIdentifier("accessView") as DeleteViewController
        self.presentViewController(deleteViewController, animated:true, completion:nil)

    }

删除视图控制器

/* Delete object happen here*/

你可以在DeleteViewController中设置一个属性,然后在初始化view controller的时候传值给它。

class DeleteViewController {
  var objectId: Int?
}

// Previous view controller
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

  // Grab your object from the data source
  let object = dataSource[indexPath.row]

  let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

  let deleteViewController = storyBoard.instantiateViewControllerWithIdentifier("accessView") as DeleteViewController

  // Pass the Id
  deleteViewController.objectId = object.objectId
  self.presentViewController(deleteViewController, animated:true, completion:nil)


}

我已经找到答案了。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

        let data: NSManagedObject = myList[indexPath.row] as NSManagedObject

        let objectId = data.valueForKeyPath("objectId") as? String
        NSUserDefaults.standardUserDefaults().setObject(objectId, forKey: "objectId")

        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
        let deleteViewController = storyBoard.instantiateViewControllerWithIdentifier("accessView") as DeleteViewController
        self.presentViewController(deleteViewController, animated:true, completion:nil)

    }