我试图在Swift中的两个组件之间传递简单的Int64
,但是从未设置该值。
这是我的第一个tableViewController,我要从其中传递数据2
:
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?){
if (segue.identifier == "transactionDetailSegue") {
let transactionDetailViewController = segue.destination as? TransactionDetailTableViewController
transactionDetailViewController?.id = 2
}
}
这是我想收到的地方:
import UIKit
class TransactionDetailTableViewController: UITableViewController {
@IBOutlet weak var nameText: UILabel!
var id = 0;
override func viewDidLoad() {
super.viewDidLoad()
dump(id)
}
}
我两次确保segue标识符是正确的,并检查了各种教程,但我仍然不确定出什么问题。
谢谢
答案 0 :(得分:1)
prepareForSegue
的签名是错误的,因此永远不会被调用。
在Swift 3+中,正确的签名是
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
并强行解开TransactionDetailTableViewController
let transactionDetailViewController = segue.destination as! TransactionDetailTableViewController
如果一切都正确连接,则代码不得崩溃。如果这样做,则表明存在设计错误。