【发布时间】:2016-09-20 16:02:58
【问题描述】:
我一直在努力使用 segue 在视图控制器之间传递数据。我看过很多 youtube 视频教程并在论坛上搜索,但我不知道为什么它不起作用。我没有收到任何错误消息,但是当我单击“按钮”时,模拟器崩溃了。我很想得到一些帮助!谢谢!
代码如下:
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
}
}
故事板图片:
【问题讨论】:
-
哪一行崩溃了?
-
@Alife 你错过了 segue.identifier = " some identifier"
-
在您的 viewController2 上尝试将此行 var labelText : String = "" 更改为此 var labelText : String!为防止模拟器崩溃,请尝试更改此“destViewController.labelText = textField.text!”到这个“ destViewController.labelText = textField.text ??”文本字段是空的,这就是为什么什么也没发生“”
-
@Shanmugasundharamselvadurai 我在哪里插入 segue 标识符?
-
@Santosh 我在 appDelegate.swift 文件中收到错误“Thead 1: Signal SIGABRT”,但我检查了所有连接。
标签: swift xcode uiviewcontroller segue transfer