将数据从 ViewController 传递回根 ViewController?

Posted

技术标签:

【中文标题】将数据从 ViewController 传递回根 ViewController?【英文标题】:Pass data from ViewController back to root ViewController? 【发布时间】:2015-08-20 21:56:49 【问题描述】:

我想知道如何在 VC3 和 VC1 之间传递数据。

我拥有的是根视图(VC1)。然后你输入一个 tableView,如果你选择一个项目,你将输入 tableView2(VC3) - 类别 - 子类别选择器。

到目前为止我所做的是在 VC1 中声明这一点:

@IBAction func unwindToVC1(segue: UIStoryboardSegue) 

 

然后在故事板中我控制拖拽黄色按钮到VC3中的红色按钮并选择“unwindToVC1”作为动作,然后我命名为segue。

然后我在 VC3 中通过 performSegueWithIdentifier() 触发 segue

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
        if segue.identifier == "Vc1" 
            let toView = segue.destinationViewController as! myRootVc

            let test = "test string"

            toView.test = test

        
    

它几乎可以工作,我最终进入了 VC1,但传递的值在 VC1 中显示为 nil,即使我之前已经在 vc1 中声明了它:

var 测试:字符串?

【问题讨论】:

能否在 if 之间添加一个断点。也许你设置的标识符错误。我没有看到其他解释。你的代码看起来不错。 if segue.identifier == "Vc1"。我们在哪里“Vc1”? @Yuchen 我试过了,它被调用了,所以不知道怎么回事 【参考方案1】:

您正在使用 segue 在 VC 之间传递数据!和 VC3 以及当您从子类别中选择项目时。你可以使用代表

【讨论】:

但是委托在根-子-子 VC 之间工作吗?我的意思是退后两步 @user2722667 我会推荐 NSNOtificationCenter 并发布通知

以上是关于将数据从 ViewController 传递回根 ViewController?的主要内容,如果未能解决你的问题,请参考以下文章

你如何将数据从 ViewController 传递到包含单独 ViewController 的 PageViewController,然后这些 ViewController 将使用这些数据?

将数据从 ViewController 传递到 TabBarController

将数据从 UITableViewCell 传递到 ViewController

将数据从 ViewController 传递到 TabViewController

将数据从 TableView 传递到 ViewController

将数据从 ViewController 传递到 NSObject