我做错了什么,但我不明白。 所以我像这样发送我的字符串:
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
值。
答案 0 :(得分:0)
字符串是swift中的值类型,因此第二个ViewController创建一个全新的实例。需要传递引用,因此请尝试在第二个ViewController中将其声明为可选:
var someString : String!