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。