Swift通过情节提要segue将值从main传递到另一个视图控制器

时间:2018-11-14 17:42:18

标签: ios swift uitableview storyboard segue

我试图在用户单击tableView单元时实现,选择的cell值需要pass详细信息viewcontroller。在这里,我由transition建立的storyboard连接(不是以编程方式)和我使用的模态转换。

我想知道怎么做,所以提供一些例子。

present modally transition

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

   // here I need implement get selected index path and passing values to another vc

} 

1 个答案:

答案 0 :(得分:2)

按如下所述使用preparefor(segue:)

我假设几件事

  1. 您当前的视图控制器正在显示播放器列表。
  2. 您正在显示一个玩家列表。
  3. 点击要显示其详细信息的玩家。
  4. 您的玩家详细信息视图控制器的名称为PlayerDetailsVC
  5. 您将在列表视图中显示一组Players模型。
  6. 从情节提要中,您的表视图选择模式为single selection

基于这些假设,您的代码将如下所示

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if let indexPath = tableView.indexPathForSelectedRow{
        let selectedRow = indexPath.row
        let PlayerDetailsVC= segue.destination as! DetailViewController
        let member = "\(players[selectedRow].name ?? "")"
        PlayerDetailsVC.player = member
    }
}

DetailViewcontroller中需要执行以下操作

var player:String? //print it within viewdidload