performSegueWithIdentifier方法中的se

作者: ForeverYoung21 | 来源:发表于2015-05-22 21:02 被阅读7843次

    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。

    相关文章

      网友评论

      • 球球ol:那如果我用代码调用performSegueWithIdentifier这个方法,sender传了一个model,那在显示的viewController中谁会接收这个sender的model呢?
      • rayZhou:不错,解释的很到位了!

      本文标题:performSegueWithIdentifier方法中的se

      本文链接:https://www.haomeiwen.com/subject/vzalqttx.html