在 Swift 中,如何从 UITableView 中获取对象 id 并根据对象 id 删除对象?

Posted

技术标签:

【中文标题】在 Swift 中,如何从 UITableView 中获取对象 id 并根据对象 id 删除对象?【英文标题】:In Swift, how to grab object id from UITableView and delete object based on object id? 【发布时间】:2015-02-09 11:34:55 【问题描述】:

我不知道如何在用户从中选择 UITableView 后从 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*/

【问题讨论】:

【参考方案1】:

您可以在DeleteViewController 中设置一个属性,并在初始化视图控制器时将值传递给它。

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)



【讨论】:

【参考方案2】:

我已经找到答案了。

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)

    

【讨论】:

以上是关于在 Swift 中,如何从 UITableView 中获取对象 id 并根据对象 id 删除对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 UITableView 中的 UITableViewCells 中的 UITextFields 中获取文本并将它们放入数组中(Swift 3)?

如何在 swift 中增加 ScrollView 中的 UITableView 高度

Swift - 如何从 Firebase 检索多个值并将它们显示在 UITABLEVIEW

如何让 json 在 Swift 3 中填充 UITableView?

从字典数组 Swift 中填充 UITableView

如何在 Swift 中从 Core Data 中删除数据时删除 UITableView 行?