iOS - 显示来自tableView didSelect的信息

时间:2016-09-13 14:33:02

标签: ios swift uitableview

我目前有一个tableView,当按下单元格时,我想显示某些数据。 tableView目前有2个单元格'Set One','Set Two'。

如果标题为“Set One”的单元格选择了,那么我希望下一个View Controller显示该单元格的数据。

以下是核心数据的数据:

// MusicSet One
defaultMusicSet!.uri = "spotify:track:1puJlKuYGH58SAFgXREUpE"
defaultMusicSet!.duration = 30.0
defaultMusicSet!.starttime = 40.0
defaultMusicSet!.xfade = 10.0
defaultMusicSet!.voiceover = "1.25s Next Up.mp3"

// MusicSet Two
defaultMusicSet!.uri = "spotify:track:59XO64Te17WcmnmMQXQbOj"
defaultMusicSet!.duration = 30.0
defaultMusicSet!.starttime = 34.75
defaultMusicSet!.xfade = 10.0
defaultMusicSet!.voiceover = "1.25s Rest.mp3"

在ViewController中,我有一个名为'txtUri','txtDuration'等的textFields。现在,如果我按下第一个单元格,我只想显示// MusicSet One数据,如果我按下第二个单元格则相同只显示// MusicSet Two数据。

我知道代码必须进入tableView(didSelect),但如何显示某些信息我不是100%肯定如何做到这一点?

这不行,但我知道我需要这样的东西?或类似的......

let musicData: playViewController?

musicData?.txtUri.text = Music.DefaultMusicSet.uri

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

  1. 将数据MusicSet添加到数组中:

    var arrMusicSet:[[String:AnyObject]]! = []
    
  2. 从表格单元格创建一个Segue到View Controller。

  3. 在IBInspector中设置Segue标识符。

  4. 现在,当您按下单元格时,segue将被触发,不需要didSelectRowAtIndexPath

  5. 现在根据prepareForSegue方法中的选定行获取MusicSet:

    // MARK: - Navigation
    
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "MySegueIndentifier" {
            if let destVC = segue.destinationViewController as? MyViewController {
    
                let selected = self.tableview.indexPathForSelectedRow!.row
                destVC.musicSet = arrMusicSet[selected]                
            }
        }
    }
    
  6. 在View Controller中定义一个将接收转发的musicSet的变量。

    var musicSet: MusicSet!
    
  7. 现在,通过此musicSet为您的标签指定值。