Мне нужно загрузить все имена списков воспроизведения в thirdviewcontroller с табличным представлением, но это не работает.

Я пытаюсь показать табличное представление на третьем контроллере представления со всеми именами списков воспроизведения, которые были созданы (я создаю массив с элементами списка воспроизведения класса, созданного мной). В представлении загрузил func, я создал два плейлиста, но когда я пробую приложение, имена не отображаются в табличном представлении.

Я попытался переписать код, снова связать табличное представление и снова создать представление, но это не работает. Он также не показывает какой-либо сбой или неожиданно закрывает приложение.

Я новичок в Swift, поэтому я не знаю, буду ли я делать что-то более неправильное.

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

//
//  ThirdViewController.swift
//  reproductor
//
//  Created by Macosx on 24/4/19.
//  Copyright © 2019 mamechapa. All rights reserved.
//

import UIKit
import AVFoundation


var favorites:[String] = []
var Playlists:[Playlist] = []

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) {
        //
    }
    override func viewDidLoad() {
        print("viewdidload")
        super.viewDidLoad()

        crear()

        myTableView2.reloadData()
        print(Playlists[1].name)
    }

    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!)
        print(Playlists[0].name)
        print(Playlists[0].songs[0])

        let pl2 = Playlist(name: "Prueba2")

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


}
0
mamechapa2 1 Май 2019 в 12:52

3 ответа

Загрузил ваш код из указанного местоположения GitHub.

Это прекрасно работает на моем конце. Ниже изображение:

enter image description here

Кстати, хорошие песни !!!

0
iOSer 1 Май 2019 в 10:29

Установите для Delegate и DataSource значение myTableView2. Поэтому добавьте ниже две строки в функции viewDidLoad, а затем перезагрузите myTableView2.

myTableView2.delegate = self
myTableView2.dataSource = self
0
skety777 1 Май 2019 в 10:05

Вам нужно установить UITableViews’s делегата и источник данных равными себе.

myTableView2.delegate = self;
myTableView2.dataSource = self;

Сделайте это в viewDidLoad() после super.viewDidLoad().

0
Bhavesh Nayi 1 Май 2019 в 14:33