使用segues无法在视图控制器之间传递数据(Xcode 7)(Swift)

问题描述:

我一直在努力使用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 ??”文本字段是空的这就是为什么什么也没有发生“” –

正如在评论中指出的问题是,你在UIViewController上使用push segue。

请注意,推模式塞格斯已过时......请看看这篇文章条目,并让我知道如果您有任何疑问

What's the difference between all the Selection Segues?

确保在您的标签textField轻点按钮,因为你逝去的是标签的文本到下一个场景,通过使用武力展开之前,输入一些文字。

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

我尝试过但仍然模拟器崩溃。还是)感谢你的建议! :) – Alfie

我做了一个示例项目,使用相同的代码,并没有得到一个错误。你的代码没有问题。

试试这个:去你的故事板,并检查每个视图控制器的出口检查员,并确保你没有出路无处。

+0

我检查了但没有找到任何东西。虽然我确实收到了SIGABRT错误。 – Alfie

+0

这就是您通常无法连接的网点出现的错误。你的所有网点应该有一个填满的圈子。你应该在ViewController 2上有两个插座(textField和view),在ViewController 2上有两个插座(标签和视图)。 – nighttalker

+0

他们是我有的网点,没有其他人 – Alfie