Как показать информацию в табличном представлении - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь загрузить массив строк в табличном представлении, но представление не распознает массив.

У меня есть массив с именем Playlists (объявлен как глобальный в ThirdViewController) с объектами из класса Playlist.Когда я использую его в любом другом табличном представлении, я могу получить доступ к каждому объекту и использовать его в табличном представлении (я использую его в ThirdViewController), но в представлении AddToPlaylist я не могу его использовать.Я думаю, что я правильно использую ячейки и функции для представлений таблицы.

Это происходит, когда я нажимаю кнопку «Añadir» в представлении игрока.Он должен загрузить табличное представление с информацией массива.

Вот проект (ветвь разработки): дерево / разработка

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 голосов
/ 02 мая 2019
let cell = tableView.dequeueReusableCell(withIdentifier: "yourIdentifier") as! UITableViewCell

cell.textLabel?.text = Playlists[indexPath.row].name
return cell 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...