Xcode - 通过dismissViewControllerAnimated在2个视图之间传递数据

Posted

技术标签:

【中文标题】Xcode - 通过dismissViewControllerAnimated在2个视图之间传递数据【英文标题】:Xcode - Passing datas between 2 views by dismissViewControllerAnimated 【发布时间】:2015-03-18 17:09:11 【问题描述】:

我使用 dimissViewControllerAnimated 将视图从 Spring 插入变量 返回到 Spring 元素。同时,我的输入数据应该通过 Spring Element 类中的函数 unwindSecondView 从 Spring Insert Variables 传递回 Sprint Element

但显然数据没有通过,我的数组:力和刚度仍然不包含值。有人可以就此提出建议吗?

来自 Spring 插入变量类的代码

class springInsertVariables : UIViewController 

var forceVar = [Float] ()
var stiffVar = [Float] ()
@IBOutlet weak var forceEntered: UITextField!
@IBOutlet weak var stiffnessEntered: UITextField!

@IBAction func submit(sender: AnyObject) 

    forceVar.append((forceEntered.text as NSString).floatValue)
    stiffVar.append((stiffnessEntered.text as NSString).floatValue)

    println(forceVar) //This doesn't print on my output
    println(stiffVar) //This doesn't print on my output
    dismissViewControllerAnimated(true, completion: nil)

   

来自 Spring 元素类的代码

 @IBAction func unwindSecondView(segue: UIStoryboardSegue) 

     if let svcspringinsertvariables = segue.sourceViewController as? springInsertVariables 
        self.force = svcspringinsertvariables.forceVar
        self.stiffness = svcspringinsertvariables.stiffVar
        println(force)
        println(stiffness)
    

【问题讨论】:

您说 forceVar 和 springVar 不会从 Spring Insert 类打印到您的输出,这是否意味着它们没有设置在那里? 我的调试器没有打印出来 对,所以如果这些值没有打印出来,是不是意味着它们是空的,因此当你传递它们时它们是空的? 我不太确定是否为空,因为它不打印。 println 之前工作过,当我尝试通过情节提要创建一个回到 Spring Element 的转场时。 你在哪里实例化你的 forceVar 和stiffVar 变量?请使用该代码更新您的问题。 【参考方案1】:

dismissViewControllerAnimated 实际上并没有使用展开转场。展开转场与其他转场一样,必须使用performSegueWithIdentifier 执行。

【讨论】:

以上是关于Xcode - 通过dismissViewControllerAnimated在2个视图之间传递数据的主要内容,如果未能解决你的问题,请参考以下文章

如何通过命令行打开 xcode 管理器窗口

XCODE / IOS - 通过 UIDocumentInteractionController 共享

通过 SSH 在 Xcode 6 下运行 xcodebuild 测试时超时

通过代码设置 Xcode 断点? (如 pause() 函数)

通过 App Store 安装时卸载 Xcode 4

无法通过 xcode 7.3.1 安装 ios 9 模拟器