2016-09-13 76 views
0

我目前有一個tableView,當單元格被按下時,我想顯示某些數據。 tableView目前有兩個單元格'Set One','Set Two'。iOS - 顯示來自tableView的信息didSelect

如果單元格的標題'Set One'didSelect,那麼我希望下一個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" 

在視圖控制器我有文本框稱爲「txtUri」,「txtDuration」等。現在如果我按在第一個單元格,我想展示// MusicSet只有一個數據,如果按第二個單元格,它將只顯示// MusicSet兩個數據。

我知道代碼將不得不去tableView(didSelect),但如何顯示某些信息我不是100%確定如何做到這一點?

這不起作用,但我知道我需要這樣的東西?或類似...

let musicData: playViewController? 

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

任何幫助將是偉大的!

+0

您必須創建並推送/顯示新的'musicData'VC。如果'txtUri'是一個UI元素,你會崩潰,因爲它還沒有被創建。 – ohr

回答

1
  1. 添加數據MusicSet到一個數組:

    var arrMusicSet:[[String:AnyObject]]! = [] 
    
  2. 創建從表單元格到視圖控制器一個Segue公司。

  3. 在IBInspector中設置Segue標識符。

  4. 現在當你按下單元格時,segue會被解僱,而不需要didSelectRowAtIndexPath

  5. 現在根據所選行獲得MusicSet內prepareForSegue方法:

    // 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. 定義的視圖控制器一個變量,它會佔用轉發musicSet。

    var musicSet: MusicSet! 
    
  7. 現在從這個musicSet爲您的標籤賦值。