Ios indexPathForSelectedRow返回意外的零
我有一个名为Ios indexPathForSelectedRow返回意外的零,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个名为Objects的数组,它是NSManagedObject的子类,并在UITableView中显示它们的属性 我有一个序列来查看对象的详细信息,这是通过手势执行的-在我使用prepareforsgue将UITableViewCell的数据传递到序列ViewController之前,这一切都很正常。但是当使用 让indexath=self.table.indexPathForSelectedRow, 我得到了所选行的nil值,因此应用程序在试图传递数据时崩溃。下面是一个完整代码的示例:
Objects
的数组,它是NSManagedObject
的子类,并在UITableView
中显示它们的属性
我有一个序列来查看对象的详细信息,这是通过手势执行的-在我使用prepareforsgue
将UITableViewCell
的数据传递到序列ViewController
之前,这一切都很正常。但是当使用
让indexath=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中也做了同样的事情,效果很好。此外,我还尝试在选择单元格时实现另一个序列,但我无法使用函数
didselectrowatinexpath
调用prepareForSegue
,但可以在我的其他ViewController
-我不确定此信息是否相关,也可能指示问题所在 没有选择单元格是有效的条件。您应该编写防御代码来处理该情况。如果indexPathForSelectedRow
返回nil,则可以实现shouldPerformSegueWithIdentifier:
方法,并返回false
。您应该编写防御代码来处理该情况。您可以实现shouldPerformSegueWithIdentifier:
方法,如果indexPathForSelectedRow
返回nil,则返回false
,segue是如何触发的?@vacawama传递objectDetails
数据的segue可以工作,并且是通过手势完成的。我在选择单元格时尝试执行的另一个手势是self.table!=nil?segue是如何触发的?@vacawama为objectDetails
传递数据的segue可以工作,并且是通过手势完成的。我在选择单元格时尝试执行的另一个手势是self.table!=无