2015-02-09 66 views
0

现在我遇到了这个问题,我不知道如何从用户选择它和另一个视图控制器后,从UITableView抓取对象ID,我想删除基于对象ID的对象,我已经从上一个。Swift - 如何从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) 

    } 

DeleteViewController

/* 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) 


} 
0

我已经找到了答案。

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) 

    }