我目前有一个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
任何帮助都会很棒!
答案 0 :(得分:1)
将数据MusicSet添加到数组中:
var arrMusicSet:[[String:AnyObject]]! = []
从表格单元格创建一个Segue到View Controller。
在IBInspector中设置Segue标识符。
现在,当您按下单元格时,segue将被触发,不需要didSelectRowAtIndexPath
。
现在根据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]
}
}
}
在View Controller中定义一个将接收转发的musicSet的变量。
var musicSet: MusicSet!
现在,通过此musicSet
为您的标签指定值。