繁体   English   中英

使用Swift通过Segue发送数据后,数据消失了

[英]Data disappears after being sent with segue using Swift

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

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

        vc.someString = someString
    }
}

然后MySecondViewController获得someString的值:

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

但是然后当我需要它来访问imagePickerController时:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    print(someString) //Nothing is printed, there is no value in someString
}

这里发生了什么事? 我需要imagePickerController中的字符串值,因为我将使用Alamofire发送选择的图像,并且该字符串是我的标头。

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

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

var someString : String!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM