簡體   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