我對編程相對比較陌生,這是我第一次嘗試在開發iOS時沒有遵循教程,所以請耐心等待。從自定義UITableViewCell發送數據到詳細ViewController - Swift
我有一個名爲'CupboardViewController'的自定義表格視圖,該視圖基於名爲'ItemTableViewCell'的自定義UITableViewCell類返回四個字符串標籤。當用戶點擊一個表項時,我希望能夠在一個名爲'detailViewController'的獨立視圖控制器中顯示這四個標籤。
這是我有的代碼,但它調用segue時沒有明顯的錯誤消息崩潰。請幫忙!
CupboardViewController
override func prepareForSegue(segue: UIStoryboardSegue,
sender: AnyObject!) {
// sender is the tapped `UITableViewCell`
let cell = sender as! ItemTableViewCell
let indexPath = self.tblItems.indexPathForCell(cell)
// load the selected model
let titleToPass = itemMgr.items[indexPath!.row].name
let detail = segue.destinationViewController as! detailViewController
// set the model to be viewed
detail.titleToPass = titleToPass
}
}
detailViewController
@IBOutlet weak var titleDetailLabel: UILabel!
@IBOutlet weak var qtyDetailLabel: UILabel!
@IBOutlet weak var dateDetailLabel: UILabel!
@IBOutlet weak var descriptionDetailLabel: UILabel!
var titleToPass: String!
var qtyToPass: String!
var descriptionToPass: String!
var dateToPass: String!
override func viewDidLoad() {
super.viewDidLoad()
titleDetailLabel.text = titleToPass
qtyDetailLabel.text = qtyToPass
dateDetailLabel.text = dateToPass
descriptionDetailLabel.text = descriptionToPass
}
// Do any additional setup after loading the view.
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
ItemTableViewCell
@IBOutlet weak var itemTitle: UILabel!
@IBOutlet weak var itemSubtitle: UILabel!
@IBOutlet weak var itemSubDetail: UILabel!
@IBOutlet weak var dateDetail: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
作爲一般規則,儘量避免強制展開Optionals(例如!),除非您絕對確定它們不會爲零。相反,你應該使用「如果讓」或「警惕」。這樣你可以迎合他們的零,這可能是發生了什麼事情。什麼是你得到的確切的錯誤,以及在哪一行? – Michael