performSegueWithIdentifier方法中的sender

1.代码实现segue,在使用performSegueWithIdentifier(sender)方法的时候,sender可以设置为我们想传的任意对象,在prepareForSegue(sender)方法中将sender传到想传到的view controller。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let checklist = lists[indexPath.row]
    performSegueWithIdentifier("ShowChecklist", sender: checklist) 
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "ShowChecklist" {
        let controller = segue.destinationViewController as ChecklistViewController
        controller.checklist = sender as Checklist 
    }
}

此时我们就将sender设置为checklist然后传到ChecklistViewController中。

2.若在StoryBoard中直接设置segue,那么sender被默认设置为触发这个segue的控件。比如我们设置点击UITableViewCell会触发segue,那么performSegueWithIdentifier(sender)方法不需要我们手动实现,其identifier被设置为在StoryBoard中设置的identifier,sender被设置为触发这个segue的UITableViewCell。我们在实现prepareForSegue(sender)方法的时候,sender即为UITableViewCell。

你可能感兴趣的:(performSegueWithIdentifier方法中的sender)