Я относительно новичок в программировании, и это моя первая попытка разработать iOS, не следуя инструкциям, поэтому, пожалуйста, несите меня.Отправка данных из пользовательского UITableViewCell в детали ViewController - Swift
У меня есть пользовательский вид таблицы под названием «CupboardViewController», который возвращает четыре строковых метки на основе пользовательского класса UITableViewCell под названием «ItemTableViewCell». Я хочу, чтобы показывать эти четыре метки в отдельном контроллере представления, называемом «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)
Как правило, старайтесь избегать принудительного разворота опций (например, как!), Если вы не уверены, что они не будут никчемными. Вместо этого вы должны использовать «if let» или «guard». Таким образом, вы можете ухаживать за ними за ноль, что, вероятно, происходит именно так. Какова точная ошибка, которую вы получаете, и на какой строке? – Michael