如何在表格视图上显示信息

时间:2019-05-02 15:38:34

标签: ios swift uitableview uiviewcontroller

我正在尝试在表视图中加载字符串数组,但是该视图无法识别该数组。

我有一个名为Playlists的数组(在ThirdViewController上声明为global),其中包含来自Playlist类的对象。当我在其他所有表视图上使用它时,我可以访问每个对象并在表视图上使用它(我在ThirdViewController上使用它),但是在AddToPlaylist视图上,我无法使用它。我认为我在为表格视图正确使用单元格和函数。

当我在播放器视图上按下“Añadir”按钮时,就会发生这种情况。它应该在表视图中加载数组信息。

这是项目(开发分支): tree/develop

import UIKit

class AddToPlaylist: UIViewController, UITableViewDelegate, UITableViewDataSource{

    @IBOutlet weak var myTableViewPlaylist: UITableView!
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return Playlists.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "hola", for: indexPath)

        cell.textLabel?.text = Playlists[indexPath.row].name

        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        Playlists[indexPath.row].songs.append(songName)
        performSegue(withIdentifier: "addedSong", sender: self)
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        myTableViewPlaylist.delegate = self
        myTableViewPlaylist.dataSource = self

        myTableViewPlaylist.reloadData()
    }
}

这是播放列表数组的声明:


import UIKit
import AVFoundation


var favorites:[String] = []
var Playlists:[Playlist] = []
var selecPlaylist = 0
var firstOpen2 = true

class ThirdViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var myTableView2: UITableView!

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        //print(Playlists.count)
        return Playlists.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: .default, reuseIdentifier: "cell")
        cell.textLabel?.text = Playlists[indexPath.row].name

        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        selecPlaylist = indexPath.row
        performSegue(withIdentifier: "segue", sender: self)
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        myTableView2.delegate = self
        myTableView2.dataSource = self

        if firstOpen2{
            crear()
            firstOpen2 = false
        }

        myTableView2.reloadData()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func crear(){
        let pl1 = Playlist(name: "Prueba")

        pl1?.addSong(song: songs[0])
        Playlists.append(pl1!)

        let pl2 = Playlist(name: "Prueba2")

        pl2?.addSong(song: songs[1])
        Playlists.append(pl2!)
    }


}

1 个答案:

答案 0 :(得分:-2)

let cell = tableView.dequeueReusableCell(withIdentifier: "yourIdentifier") as! UITableViewCell

cell.textLabel?.text = Playlists[indexPath.row].name
return cell