2015-08-21 74 views
0

我正在尝试一个新的示例项目,并且我添加了一个table viewViewController,并且在每个表格视图单元的点击上,它被导航到一个详细视图控制器使其成为push segue表格视图单元格的索引路径不可访问

prepareForSegue()方法中,选定的tableViewCell的indexPath被重新调用为零。

这里的方法,

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { 
    self.performSegueWithIdentifier("detail_segue", sender: self) 
} 

func prepareForSegue(segue: UIStoryboardSegue?,sender: AnyObject!){ 

    if(segue!.identifier == "detail_segue"){ 
     var indexPath = self.tableView.indexPathForSelectedRow() 
     let detailViewController = segue!.destinationViewController as! DetailViewController 
      detailViewController.sampleDetail = samplesArray[indexPath!.row] as! Sample 
    } 
} 

让我知道我要去的地方错了? 在此先感谢..

+0

你可以多加点代码 –

+0

你需要显示table view delegate的'didSelectRowAtIndexPath'。 – Desdenova

+0

它只是一个简单的表视图在视图控制器和表格视图单元格的页面导航(与推塞格)到另一个viewcontroller ...这是非常basic.But我很困惑的是,为什么indexPath返回为零? –

回答

0

你可以试试这个:

var index = self.tableView.indexPathForCell(sender as UITableViewCell)! 

我想,也许你tableviewcell.selectionStyle是无,所以self.tableView.indexPathForSelectedRow()将返回零,因为它是真的没有选择行。

+0

是的,我试过了......同样的结果..“,致命错误:意外地发现零,同时解包可选值”和selectionStyle也设置为默认值。 –

+0

在这种情况下,您可以在调用自我时通过indexPath .performSegueWithIdentifier(“detail_segue”,发件人:“yourIndexPath”)并将它作为NSIndexPath在prepareForSegue中恢复,如var indexPath = sender –

相关问题