【问题标题】:Can't pass data between View Controllers using condition (Swift 2)无法使用条件在视图控制器之间传递数据(Swift 2)
【发布时间】:2015-10-14 04:49:03
【问题描述】:

我一直在尝试将数据传递给另一个视图控制器。但是由于我有两个条形按钮,它们会导致两个不同的视图控制器,所以我必须设置一个条件。但是当我尝试传递数据时它不起作用。这是我一直在使用的代码:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if (segue.identifier == "ViewController") {

        let destViewController = segue.destinationViewController as! ViewController

        destViewController.chips = chips
        destViewController.blind = blind

    }
}

我的目标故事板 ID 为 ViewController,但当 ViewController 视图打开时,数据未通过。

编辑:

在两个视图控制器中,chipsblind 都声明为:

var chips = 0
var blind = 0

在我添加后退按钮之前,数据已正确传递。但是每次我点击“返回”时应用程序都会崩溃,所以我决定添加一个似乎不起作用的条件。

【问题讨论】:

  • 请说您的 vars 芯片和 blins 是具有弱属性的 IBOutlet 属性?
  • 两者都弱应该强吗?
  • 如何在两个视图控制器中声明chips和blind?你能编辑你的问题吗?
  • 当您说“数据未通过”时,您如何以及在哪里进行检查? (如果你的意思是不显示,你怎么显示呢?)
  • 我尝试在 viedDidLoad() 中 print() blindchips 并尝试使用 updateLabels 方法将标签更新为最新值。两者都没有变化。

标签: ios segue swift2 xcode7 pass-data


【解决方案1】:

我对 Xcode/Swift 很陌生,但我相信您的 if (segue.identifier == "ViewController") 中的字符串是问题所在。您需要使用 segue 的标识符而不是“ViewController”。在 Main.storyboard 中选择您的 segue,单击 Attributes Inspector 并在 Identifier 字段中为其命名。这就是你要使用的字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 2023-02-20
    • 2021-03-12
    • 2014-08-05
    相关资源
    最近更新 更多