我对编程相对比较陌生,这是我第一次尝试在开发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