2016-09-20 173 views
0

我一直在努力使用segues在視圖控制器之間傳遞數據。我已經觀看了許多YouTube視頻教程,並在論壇上進行了搜索,但我無法弄清楚爲什麼它不起作用。我沒有收到任何錯誤消息,但是當我點擊'按鈕'時,模擬器崩潰。我會喜歡一些幫助!謝謝!使用segues無法在視圖控制器之間傳遞數據(Xcode 7)(Swift)

下面是代碼:

ViewController1:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet var textField: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     let destViewController : ViewController2 = segue.destinationViewController as! ViewController2 

     destViewController.labelText = textField.text! 

    } 

} 

ViewController2:

import Foundation 
import UIKit 

class ViewController2 : UIViewController { 

    @IBOutlet var Label: UILabel! 

    var labelText : String = "" 

    override func viewDidLoad() { 

     Label.text = labelText 

    } 

} 

故事板圖片:

storyboard image

+0

哪一行導致崩潰? – Santosh

+0

@Alife you missed that segue.identifier =「some identifier」 –

+0

on your viewController2 try this change this line var labelText:String =「」 to this var labelText:String!爲防止模擬器崩潰,請嘗試更改此「destViewController.labelText = textField.text!」到這個「destViewController.labelText = textField.text ??」文本字段是空的這就是爲什麼什麼也沒有發生「」 –

回答

0

確保在您的標籤textField輕點按鈕,因爲你逝去的是標籤的文本到下一個場景,通過使用武力展開之前,輸入一些文字。

destViewController.labelText = textField.text! //here compiler expects that your textField has the value 
+0

我嘗試過但仍然模擬器崩潰。還是)感謝你的建議! :) – Alfie

0

我做了一個示例項目,使用相同的代碼,並沒有得到一個錯誤。你的代碼沒有問題。

試試這個:去你的故事板,並檢查每個視圖控制器的出口檢查員,並確保你沒有出路無處。

+0

我檢查了但沒有找到任何東西。雖然我確實收到了SIGABRT錯誤。 – Alfie

+0

這就是您通常無法連接的網點出現的錯誤。你的所有網點應該有一個填滿的圈子。你應該在ViewController 2上有兩個插座(textField和view),在ViewController 2上有兩個插座(標籤和視圖)。 – nighttalker

+0

他們是我有的網點,沒有其他人 – Alfie

相關問題