2015-02-09 55 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) 

    }