我知道在整个论坛中这是一个经常被问到的问题,我讨厌提出另一个看似简单的问题,但我无法找到有关我的具体情况的数据传递解决方案。
基本上,我在导航控制器中嵌入了一个视图控制器;其中显示了一个分段栏,充当了一个'配置文件选择器'。选择后,我希望在选择不同的配置文件后,可以更改另一个视图上的一系列图像,但数据传递似乎无论如何都可以正常工作。我不确定在特定情况下是否需要代表。
本质;我只是喜欢一个如何为分段栏传递案例值的示例,以便我能够执行如下的简单案例语句:(其中案例值已从前一个视图控制器传递)
@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
}
}
我知道我的问题很长,可能解释得很差,但任何反馈都会非常感激。我有点挣扎于传递数据的整个逻辑和理解,所以如果你能尽可能简单地为我分解解决方案;这将是不可思议的。
答案 0 :(得分:1)
要在这两个类之间共享数据,他们需要了解彼此或了解共享对象。例如,您可以创建一个包含要来回传递的属性的单例数据模型。
private let instance = MySingleton()
class MySingleton {
var somethingImInterestedIn: String?
var sharedInstance: MySingleton {
get {
return instance
}
}
}
每个班级都可以通过以下方式获得对此的引用:
MySingletion.sharedInstance
一旦他们拥有对单身人士的引用,他们就可以设置或获取该对象中的任何属性。对于您的情况,您可能希望存储枚举而不是字符串。