[英]indexPathForSelectedRow returns unexpected nil
我有一个名为Objects
的数组,它是NSManagedObject
的子类,并在UITableView
显示其属性。
我有一个segue来查看使用手势执行的对象的详细信息-直到我使用prepareForSegue
来将UITableViewCell
的数据传递给segueing的ViewController
,它才能正常工作。 但是,当使用let indexPath = self.table.indexPathForSelectedRow
,我为选定的行获取了一个nil值,因此在尝试传递数据时应用程序崩溃。 这是完整代码的示例:
if segue.identifier == "showDetails" {
let vc = segue.destinationViewController as! DetailsViewController
let indexPath = self.table.indexPathForSelectedRow
if indexPath == nil { print(index path is NIL")}
let selectedObject = self.objects[indexPath!.row]
vc.setting = setting
vc.selectedObject = selectedObject
}
有谁知道可能出了什么问题? 我在另一个ViewController中做了同样的事情,并且工作正常。 我也试图在选择单元格时实现另一个segue,但是我无法使用函数didSelectRowAtIndexPath
调用prepareForSegue
,但是可以在我的其他ViewController
-我不确定此信息是否相关或是否也可能表明问题所在。
没有选择任何单元格是有效条件。 您应该防御性地处理这种情况。 您可以实现shouldPerformSegueWithIdentifier:
方法,如果indexPathForSelectedRow
返回nil,则返回false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.