这是我想做的一个例子。
您有一个带有不同视频列表的表格视图。当您单击视频时,它将带您到详细的视图控制器(顶部的视频,下面的描述)。现在,我目前正在创建一个全新的视图控制器,添加视频/文本,链接segue,然后创建另一个视图控制器并重新开始。除了拥有一百万个视图控制器之外,您还不能仅使用一个视图控制器来执行此操作,并从一个快速文件中输入文本/视频吗?我是相对较新的人,所以如果有人可以清楚地解释该过程,将不胜感激。谢谢!
最佳答案
您只需要一个VC即可显示您拥有的许多视频。
假设您有一个这样的模型:
struct Video {
let videoLink: URL
let description: String
}
并且您的表视图控制器使用称为
Video
的videos
数组作为其数据源。在
didSelectRowAt
方法中,您可以获取选定的视频并以选定的视频作为发送者执行segue:override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let videoSelected = videos[indexPath.row]
performSegue(withIdentifier: "showVideo", sender: videoSelected)
}
现在创建一个
VideoViewController.swift
文件,并执行以下操作:class VideoViewController: UIViewController {
var video: Video!
// write code for this VC to display not a specific video, but "self.video"
// For example, instead of setting the label's text to a hardcoded description, set it to "self.video.description"
}
然后,返回到表视图控制器,并覆盖
prepareForSegue
:override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? VideoViewController {
vc.video = sender as! Video
}
}
关于ios - 如何避免将一百万个 View Controller 用于表 View 列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54406647/