使用Swift与segue一起发送数据后数据消失

时间:2015-12-11 16:45:46

标签: ios swift uiimagepickercontroller segue

我做错了什么,但我不明白。 所以我像这样发送我的字符串:

where month(date) * 100 + day(date) between 1120 and 1215

MySecondViewController获取someString的值:

var someString = "My String"
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "MyCustomIdentifier") {
        let vc = segue.destinationViewController as! MySecondViewController

        vc.someString = someString
    }
}

但是当我需要它在imagePickerController中访问时:

var someString = String()
override func viewDidLoad() {
    super.viewDidLoad()
    print(someString) //Prints String as expected, all good
}

这里发生了什么?我需要func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { print(someString) //Nothing is printed, there is no value in someString } 中的字符串值,因为我将使用Alamofire发送所选图像,并且该字符串是我的标题。

编辑:发现问题 - 我在调用imagePickerController的同时从服务器获取someString值。

1 个答案:

答案 0 :(得分:0)

字符串是swift中的值类型,因此第二个ViewController创建一个全新的实例。需要传递引用,因此请尝试在第二个ViewController中将其声明为可选:

var someString : String!