我有两个视图控制器都是相同的类型,都有一些详细的视图页面视图。并且两者都有不同的segue名称,但是一个进入详细页面而另一个不会抛出一些错误。 有人可以帮我解决这个问题吗?
没有工作的猜测
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "showQueueDetails"){
let indexPath = self.tableView.indexPathForSelectedRow!
// sending data from tableviews to DetailTableView
let passingData = segue.destination as! QueueDetailViewController
// Getting the complete CoreData Object and passing it to the detail view
passingData.data = coreDataArray[indexPath.row]
self.tableView.deselectRow(at: indexPath, animated: true)
}
}
正在运作的segue
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "showDetails"){
// var upcoming: NewViewController = segue.destination as! NewViewController
let indexPath = self.tableView.indexPathForSelectedRow!
//let titleString = self.objects.objects(at: sender.row) as? String
// sending data from tableviews to DetailTableView
let passingData = segue.destination as! RecentScansDetailViewController
// Getting the complete CoreData Object and passing it to the detail view
passingData.data = coreDataArray[indexPath.row]
// upcoming.titleString = titleString
self.tableView.deselectRow(at: indexPath, animated: true)
}
}
我希望有相同的控制器转到另一个视图控制器 但回来时它应该自动知道它应该返回哪个视图控制器
答案 0 :(得分:1)
你的输出表明你的seque有标识符" showQueueDetails"有一个类型为" RecentScansDetailViewController"的targetViewController; (与seque相同,#34; showDetails"。
确保使用标识符" showQueueDetails"真的指向#34; QueueDetailViewController"类型的targetViewController;因为你也把它投射到你的代码中。
返回故事板并查看