#ios #uitableview #core-data #swift
#iOS #uitableview #core-данные #swift
Вопрос:
я новичок в Swift, и я хотел бы знать, почему этот фрагмент кода, который я перевел с Obj-C, здесь не работает.
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "scoreDetail" {
let indexPath = self.tableView.indexPathForSelectedRow()
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
let itemVC: ScoreVC = segue.destinationViewController as ScoreVC
itemVC.detailItem = object
}
}
Вот раскадровка. У меня есть Show Replace
переход от ячейки к UINavigatorController
Я получаю эту ошибку, как только нажимаю на UITableViewCell
Ответ №1:
Проблема не имеет ничего общего со Swift. destinationViewController — это контроллер навигации, а не ваш ScoreVC, поэтому код, с которого вы его перевели, также не должен был работать (если у него были те же настройки). Это должно выглядеть следующим образом,
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "scoreDetail" {
let indexPath = self.tableView.indexPathForSelectedRow()
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
let nav : UINavigationController = segue.destinationViewController
let itemVC: ScoreVC = nav.topViewController as ScoreVC
itemVC.detailItem = object
}
}
Комментарии:
1. вы абсолютно правы, я только что заметил эту вещь! Большое вам спасибо