将数据从 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