【问题标题】:Accessing Variables from FirstViewController from SecondViewController in Swift在 Swift 中从 SecondViewController 访问 FirstViewController 中的变量
【发布时间】:2014-11-10 17:10:25
【问题描述】:

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

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

需要初始化(coder aDecoder: NSCoder) {

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

现在的任何帮助都会令人惊叹。谢谢

【问题讨论】:

    标签: ios iphone swift nscoder


    【解决方案1】:

    在 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/

    【讨论】:

    • 我可以将它添加到第一个视图控制器吗?如果是这样,我仍然不清楚如何在初始化时访问第二个视图控制器中的任何变量。我是否在某种意义上导入它。抱歉,我是第一次来到 Apple 现场。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多