[英]assing object with prepareForSegue becomes nil in Swift 3
先生,
我正在嘗試實現一個表單並在下面傳遞數據對象
import UIKit
import GRDB
class Staff: Record {
var id: Int64?
var compId: Int64 = 0
var chiName: String = ""
var engName: String = ""
到表視圖控制器,以加載子記錄。 當涉及到實現時,它似乎變得空了,沒有任何意義。 您能告訴我在這種情況下如何確保第二個視圖控制器不接收空對象嗎?
以下是日志:
第一個UIView控制器
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("view salary X ")
print(dummy)
print(dummy.id ?? "0")
if let secondController = segue.destination as? ViewSalaryTableViewController {
secondController.dummyStaff = dummy
}
}
第二個UITableView控制器:
public var dummyStaff : Staff?
override func viewDidLoad() {
super.viewDidLoad()
..
print("arrive dummyStaff")
print(dummyStaff ?? "njull")
}
情節提要局部草稿:
故事板設置
確保secondController的類型轉換正常工作。 如果您有多個segue,請使用segue標識符進行區分。 下面的代碼對我來說很好:
class MyBook {
var name:String!
}
ViewController 1
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Vc1ToVc2" {
let book = MyBook()
book.name = "Harry"
if let destinationVc = segue.destination as? ViewController2 {
destinationVc.book = book
}
}
}
ViewController 2
var book:MyBook?
override func viewDidLoad() {
super.viewDidLoad()
print(book?.name ?? "No name")
}
版畫:哈里
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.