如何将json数据传递到表视图和其他视图控制器?

时间:2018-09-25 14:25:58

标签: ios json swift uitableview swift4

我有一个称为HomeController()的主视图控制器。有一个分为三个部分的分组表视图。第一部分应显示我的JSON文件中的数据。为了提供一个想法,我想在我的第一部分中显示电视剧第四季的列表,例如第1季,第2季,第3季。

如果用户单击第1季,则将推送一个新的视图控制器,其中包含一个表格视图,其中包含显示第1季剧集标题的行。如果用户点击一个剧集,将再次推送一个新的VC,它将在UILabel中显示剧集标题,并在文本视图中显示该剧集摘要。

My main controller

My second controller which will display the titles of the selected season episodes

My third controller where episode title and summary will be displayed

目前,我正在像下面那样传递静态数据

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let destVC = EpisodeTextController()
    if indexPath.row == 0 {
        destVC.episodeTitleLabel.text = "Minimum Viable product"
        destVC.textView.text = "Basic text"
    }
    self.navigationController?.pushViewController(destVC, animated: true)
}

这是我的基本JSON文件

{
    "Seasons": [
        {
            "Season Name": "season1",
            "Season Desccription": "season description",
            "Episodes": [
                {
                    "title": "title of episode1",
                    "desc": "description of episode1"
                },
                {
                    "title": "title of episode2",
                    "desc": "description of episode2"
                }
            ]
        },
        {
            "Season Name": "Season 2",
            "Season Desccription": "season description",
            "Episodes": [
                {
                    "title": "title of episode1",
                    "desc": "description of episode1"
                },
                {
                    "title": "ttile of episode2",
                    "desc": "description of episode2"
                },
                {
                    "title": "episode3",
                    "desc": "description"
                }
            ]
        }
    ]
}

这是我的模型对象

struct Show: Codable {

    let seasons: String
    let episodes: [String]
    let episodeTitle: String
    let episodeSummary: String
}

我不知道这是对还是错

1 个答案:

答案 0 :(得分:0)

您应该使用3个ViewController  1. HomeViewController:您只显示季节列表数据(使用tableview数据源和委托)

  1. EpisodesViewController:如果用户选择任意行,就像选择任何Season,那么您还可以显示该季节的所有情节,则应将该数据从HomeViewController传递给EpisodesViewController

  2. EpisodesDetailsViewController: 如果选择了任何情节,则您应该仅发送详细信息json数据
    从EpisodesViewController到EpisodesDetailsViewController 您只需在此页面中显示数据 这是您必须遵循的步骤

如果有任何问题,请在此处评论 我的电子邮件ID为:sudebsarkar21@gmail.com,请在此处联系