从Swift中的SecondViewController访问FirstViewController中的变量

时间:2014-11-10 17:10:26

标签: ios iphone swift nscoder

我一直试图从SecondViewController访问位于我的FirstViewController类中的变量。我已经尝试从secondviewcontroller实例化firstviewcontroller但是我在这个NSCoder交易中遇到了极大的麻烦,之前的帖子似乎没有用......很可能是因为Swift不断更新' ;并打破任何旧代码或因为我无法正确称呼它......

FirstViewController中的初始化代码如下:

  

必需的init(编码器aDecoder:NSCoder){

    super.init(coder: aDecoder)
    fatalError("init(coder:) has not been implemented")
}

现在任何帮助都会很棒。感谢

1 个答案:

答案 0 :(得分:0)

在Swift vs Objective C中,从一个类到另一个类的对象的传递/设置值没有区别。通常在现代Swift项目中,您将使用故事板。但是这个想法是一样的。在实例化第二个viewController时,您将直接访问该viewController的属性。通常,在与第一个viewController进行通信时,您将使用协议/委托方案(研究这些方案)。下面是一个使用prepareForSegue函数访问辅助viewController属性的简单示例(故事板默认值)。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if segue.identifier == "someidentifier" {
        let vc = segue.destinationViewController as MySecondViewController
        // vc.someProperty = someValue
    }
}

编辑:请查看本教程和类似的教程。关键原则是segue.detinationViewController

http://makeapppie.com/2014/07/01/swift-swift-using-segues-and-delegates-in-navigation-controllers-part-1-the-template/