[英]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.