Загрузить UITableViewCell в UITableView в XIB-файл - PullRequest
0 голосов
/ 26 мая 2018

ОК. Я видел много форумов и не нашел ничего конкретного с имеющейся у меня проблемой.

  • У меня есть ViewController, в который я добавил UITableView.

enter image description here

  • UITableView загружает UITableViewCell, созданный в виде файла xib

enter image description here

  • TableViewCell имеет UITableView, который, в свою очередь, имеет UITableViewCell, созданный также в виде xib-файла.

enter image description here

enter image description here

  • Так загружается первый модуль UITableViewCell внутри Firts UITableView.Загрузка в ViewController:

    tableDetails.delegate = self tableDetails.dataSource = self tableDetails.register(UITableViewCell.self, forCellReuseIdentifier: "DepartureDetailTableViewCell")

Проблема в том, что я не знаю, как я собираюсь загрузить второй UITableViewCell внутри второгоUITableView в xib-файле из ViewController.Любая помощь?.А также, как это сделать для второго UITableView / UITableViewCell.

enter image description here

PD.: Смотрите этот учебник, но он использует прототип ячейки внутри ViewController: https://www.youtube.com/watch?v=znGd5kyIdgM

Пожалуйста, помогите!

ОБНОВЛЕНИЕ:

ОК, я решаю проблему с помощью @Abdelahad Darwish solution!но у меня есть другая проблема ... при загрузке DepartureInsideTableViewCell в DepartureDetailTableViewCell ... не показывать ничего ... это выглядит так:

enter image description here

Имеетчтобы отобразить DepartureInsideTableViewCell в середине двух представлений «30 мая 2018 - 01:04» и «30 мая, 07:47»

Любая помощь?

1 Ответ

0 голосов
/ 26 мая 2018

Первый для вашей MainTableView Просто зарегистрируйте обычную ячейку в Xib. Просто сделайте это нормально, и DepartureDetailTableViewCell будет иметь весь источник данных и делегат для внутренней ячейки. Например:

не забудьте написать правильную ячейкуидентификаторы и т. д.

В ViewController:

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {


    override func viewDidLoad() {
        super.viewDidLoad()

        self.tableView.register(UINib.init(nibName: "DepartureDetailTableViewCell", bundle: nil), forCellReuseIdentifier: "DepartureDetailsTableViewCell")
        self.tableView.delegate = self
        self.tableView.dataSource = self

    }


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "DepartureDetailTableViewCell", for: indexPath) as! DepartureDetailTableViewCell
        return cell
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 4 // cell data source
    }
}

В DepartureDetailTableViewCell:

class DepartureDetailTableViewCell: UITableViewCell {

    @IBOutlet weak var tableView:UITableView!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code

        self.tableView.register(UINib.init(nibName: "DepartureInsideTableViewCell", bundle: nil), forCellReuseIdentifier: "DepartureInsideTableViewCell")
        self.tableView.delegate = self
        self.tableView.dataSource = self
    }


}

extension DepartureDetailTableViewCell: UITableViewDelegate,UITableViewDataSource{

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "DepartureInsideTableViewCell", for: indexPath) as!  DepartureInsideTableViewCell
        return cell
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 4 // cell data source
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...