繁体   English   中英

在Swift中的视图控制器之间传递对象

[英]Passing object between view controllers in Swift

我有一个奇怪的问题。 我试图将一个对象从ViewControllerA传递给CreateInvitationViewController

ViewControllerA我有以下代码:

func btnPassedRequestTouched(sender:UIButton!)
{
    print("button passed request touched")
    // pass request
    self.performSegueWithIdentifier("createInvitationSegue", sender: self)

}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
    if segue.identifier == "createInvitationSegue" {
        let createInvitationView = segue.destinationViewController as! CreateInvitationViewController
        let invitation = invitations[self.carousel.currentItemIndex]
        createInvitationView.invitation = invitation
    }
}

我在这一行放了一个断点: createInvitationView.invitation = invitation ,我可以看到这个对象存在。

ViewControllerB我有以下代码:

class CreateInvitationViewController: UIViewController {

    var invitation = Invitation()

    override func viewDidLoad() {
        super.viewDidLoad()

        // if invitation is set, then use it to populate fields
        if let _ = self.invitation.id {
            invitationText.hidden = false
            invitationText.text = self.invitation.note
        }
    }

我在我制作的segue上使用Show动作,它看起来像这样: 显示动作 这是我得到的错误:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MyProject.CreateInvitationViewController 0x156365810> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key postRequest.'

你有什么建议为什么会这样吗?

它告诉你它无法找到postRequest 这意味着您要么有一些代码试图设置postRequest或者更有可能的是,您在故事板中有一些控制权,试图连接到名为postRequest的插座,但是没有这样的插座存在(例如,您可能有一些插座过去的那个名字,从代码中删除了插座,但忽略了相应地更新故事板)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM