我遇到了这个问题,当在iOS模拟器上运行我的应用程序时,我从自定义表格视图单元格到详细视图控制器的segue不起作用。我可以点击单元格然后应用程序冻结,我不能再做任何事情而不必停止运行应用程序并重新启动它。我在我的应用程序的几个地方有这样的细分,只有其中一个工作正常,其他人没有。我已经确定segue标识符没问题,但仍然无效。有关为什么会发生这种情况的任何想法?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
let cell = sender as! UITableViewCell
let indexPath = tableView.indexPathForCell(cell)
let detailViewController: DetailTableViewController = segue.destinationViewController as! DetailTableViewController
let objectAtIndex: Tasks = fetchedResultsController.objectAtIndexPath(indexPath!) as! Tasks
detailViewController.receivingObject = objectAtIndex
}
}
答案 0 :(得分:1)
在segueing
时通过传感器控制器添加此扩展程序extension UIViewController{
var visibleVC: UIViewController {
if self is UINavigationController{
if let cvc = (self as! UINavigationController).visibleViewController { return cvc }
}
return self
}
}
并尝试准备segue func
if segue.identifier == "showDetail" {
if let cell = sender as! UITableViewCell{
let indexPath = tableView.indexPathForCell(cell)
if let let detailViewController = segue.destinationViewController. visibleVC as! DetailTableViewController{
if let objectAtIndex = fetchedResultsController.objectAtIndexPath(indexPath!) as! Tasks{
detailViewController.receivingObject = objectAtIndex
} else { print("unlikely") }
} else { print("wiring problem in storyboard") }
} else { print("segue is not initiated from a cell") }
}
这将在列表中更容易找出问题所在,但我认为只是导航vc阻碍了。