0

我一直在尝试从 SecondViewController 访问位于我的 FirstViewController 类中的变量。我已经尝试从 secondviewcontroller 实例化 firstviewcontroller,但是我在处理 NSCoder 交易时遇到了极大的麻烦,而且以前的帖子似乎都没有工作......很可能是因为 Swift 不断“更新”并破坏任何旧代码,或者因为我不能叫对...

我在 FirstViewController 中的初始化代码如下:

需要初始化(编码器aDecoder:NSCoder){

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

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

4

1 回答 1

0

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

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/

于 2014-11-10T17:27:57.320 回答