使用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
}
}
故事板图片:
正如在评论中指出的问题是,你在UIViewController上使用push segue。
请注意,推模式塞格斯已过时......请看看这篇文章条目,并让我知道如果您有任何疑问
确保在您的标签textField
轻点按钮,因为你逝去的是标签的文本到下一个场景,通过使用武力展开之前,输入一些文字。
destViewController.labelText = textField.text! //here compiler expects that your textField has the value
我尝试过但仍然模拟器崩溃。还是)感谢你的建议! :) – Alfie
我做了一个示例项目,使用相同的代码,并没有得到一个错误。你的代码没有问题。
试试这个:去你的故事板,并检查每个视图控制器的出口检查员,并确保你没有出路无处。
我检查了但没有找到任何东西。虽然我确实收到了SIGABRT错误。 – Alfie
这就是您通常无法连接的网点出现的错误。你的所有网点应该有一个填满的圈子。你应该在ViewController 2上有两个插座(textField和view),在ViewController 2上有两个插座(标签和视图)。 – nighttalker
他们是我有的网点,没有其他人 – Alfie
哪一行导致崩溃? – Santosh
@Alife you missed that segue.identifier =“some identifier” –
on your viewController2 try this change this line var labelText:String =“” to this var labelText:String!为防止模拟器崩溃,请尝试更改此“destViewController.labelText = textField.text!”到这个“destViewController.labelText = textField.text ??”文本字段是空的这就是为什么什么也没有发生“” –