Показать имена в табличном представлении - PullRequest
0 голосов
/ 01 мая 2019

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

Я пытаюсь показать табличное представление на третьем контроллере представления свсе имена списков воспроизведения, которые были созданы (я создаю массив с элементами класса playlist, созданного мной).В представлении загрузил 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])
    }


}

Ответы [ 4 ]

1 голос
/ 01 мая 2019

Какими вашими данными является ваш источник данных, и что показать вашему делегату.Вы должны установить свой источник данных и делегировать.Вы должны установить tableView dataSource и Delegate

myTableView2.delegate = self
myTableView2.dataSource = self

Что такое делегат

UITableViewDelegate

UITableViewDataSource

0 голосов
/ 01 мая 2019

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

Отлично работает на моем конце.Ниже изображение:

enter image description here

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

0 голосов
/ 01 мая 2019

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

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

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

0 голосов
/ 01 мая 2019

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

myTableView2.delegate = self
myTableView2.dataSource = self
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...