通过分段栏在视图之间传递数据

时间:2016-06-03 14:47:57

标签: ios swift

我知道在整个论坛中这是一个经常被问到的问题,我讨厌提出另一个看似简单的问题,但我无法找到有关我的具体情况的数据传递解决方案。

基本上,我在导航控制器中嵌入了一个视图控制器;其中显示了一个分段栏,充当了一个'配置文件选择器'。选择后,我希望在选择不同的配置文件后,可以更改另一个视图上的一系列图像,但数据传递似乎无论如何都可以正常工作。我不确定在特定情况下是否需要代表。

本质;我只是喜欢一个如何为分段栏传递案例值的示例,以便我能够执行如下的简单案例语句:(其中案例值已从前一个视图控制器传递)

 @IBAction func chooseImage(sender: AnyObject) {
    switch myPhotoSegment.selectedSegmentIndex {
        //if first segment selected
    case 0:
        //stop image animation if currently animating
        newImageView.stopAnimating()
        //update displayed image
        newImageView.image = UIImage(named: "1.jpg")
        //if second segment selected
    case 1:
        //stop image animation if currently animating
        newImageView.stopAnimating()
        //update displayed image
        newImageView.image = UIImage(named: "2.jpg")
        //if third segment selected
    case 2:
        //stop image animation if currently animating
        newImageView.stopAnimating()
        //update displayed image
        newImageView.image = UIImage(named: "3.jpg")
        //if fourth segment selected
    case 3:
        //stop image animation if currently animating
        newImageView.stopAnimating()
        //update displayed image
        newImageView.image = UIImage(named: "4.jpg")

        //by default, no segment selected
    default:
        newImageView.image = nil
    }
}

我知道我的问题很长,可能解释得很差,但任何反馈都会非常感激。我有点挣扎于传递数据的整个逻辑和理解,所以如果你能尽可能简单地为我分解解决方案;这将是不可思议的。

1 个答案:

答案 0 :(得分:1)

要在这两个类之间共享数据,他们需要了解彼此或了解共享对象。例如,您可以创建一个包含要来回传递的属性的单例数据模型。

private let instance = MySingleton()
class MySingleton {
  var somethingImInterestedIn: String?

  var sharedInstance: MySingleton {
    get {
        return instance
    }
  }
}

每个班级都可以通过以下方式获得对此的引用:

MySingletion.sharedInstance

一旦他们拥有对单身人士的引用,他们就可以设置或获取该对象中的任何属性。对于您的情况,您可能希望存储枚举而不是字符串。