如何将数据从tableViewCell中的api传递到Swift 4中的另一个tableViewCell?

时间:2018-12-11 01:51:44

标签: swift api uitableview tableview pass-data

我正在开发一个电视跟踪应用程序,您可以在其中搜索电视节目并将其保存,以查看新剧集何时出现。

我的问题是,如何从searchTableViewControllerpresent的单元格中获取电影数据到myShowsTableViewController的单元格中?

1 个答案:

答案 0 :(得分:1)

这是一个非常广泛的问题,通常不适合用于StackOverflow,后者适用于更多的“细粒度问题”。

也就是说,我建议创建一个名为DataManager或类似的类。在进行API调用方面,我建议使用Alamofire之类的方法进行API调用。最后,我建议阅读Codable protocol,以解码API发送回的JSON。解码JSON时,您需要将结构存储在视图控制器可以看到的位置。

要使用CocoaPods,请here's a good primer(将其用于Alamofire)。

您的数据管理器将如下所示(为简单起见,我将使用NSObject,但您可以只创建自己的类)

struct Shows: Codable {
    // Whatever the API sends back, you've got to map it here
}

class DataManager: NSObject {
    var shows: [Shows] = [] // empty array of shows to start

    func methodToGetAPIResponse() {
        // Alamofire call & JSON decoding here
        // Once you get a valid response, shows = try JSONDecoder().decode...
    }
}

您可以在视图控制器类中为DataManager这样的事情:

let dataManager = DataManager()

然后,在UITableViewDataSource方法中,numberOfRowsAtIndexPath将是return dataManager.shows.countcellForRowAtIndexPath,您将拥有一个对象来填充标签,如下所示:

let show = dataManager.shows[indexPath.row]

无论如何,这应该足以让您入门。祝好运!将来尝试对您的问题进行更详尽的介绍。