【发布时间】:2020-04-18 06:48:34
【问题描述】:
首先,如果之前有人问过这个问题,或者回答起来是否相对简单,我深表歉意。总的来说,我对 Swift/编程比较陌生,并且仍在尽可能多地自学。我通常会查看开发者文档/reddit/google 以获取我所遇到问题的答案。如果有更好的方法来寻找答案或支持,如果可能的话,我将不胜感激任何一般提示或技巧!
在我目前正在处理的项目中,我的一个视图控制器包含两个单独的 TableView,每个都由来自主数组的过滤结果填充。主阵列由课程组成,每个课程都有名称、学习类型和主题。这两个过滤后的数组是根据课程的学习类型过滤的:
var visualArray: [Module] = AllModules.modulesArray.filter { $0.learningType == .visual }
var kinestheticArray: [Module] = AllModules.modulesArray.filter { $0.learningType == .kinesthetic }
我想要完成的是根据用户点击的课程将模块的名称和模块的描述传递给单独的视图控制器。我试图在 'didSelectRowAt' 方法和 'prepare(for segue:)' 方法中完成此操作,但无济于事。我想要发生的是目标控制器上标签的文本属性,以显示所选课程的名称,实际发生的是标签保持不变。
这是我上面提到的 prepare(for segue:) 方法的当前代码:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let tableView = UITableView()
// Set up indexPath
guard let visualIndexPath = visualTableView.indexPathForSelectedRow,
let kinestheticIndexPath = kinestheticTableView.indexPathForSelectedRow else { return }
let visualModules = visualArray[visualIndexPath.row]
let kinestheticModules = kinestheticArray[kinestheticIndexPath.row]
// Set up destination
guard let destVC = segue.destination as? ModuleVC else { return }
if tableView == visualTableView {
print(visualModules.name, visualModules.description)
destVC.moduleName = visualModules.name
destVC.moduleDescription = visualModules.description
} else if tableView == kinestheticTableView {
destVC.moduleName = kinestheticModules.name
destVC.moduleDescription = kinestheticModules.description
}
}
这是我当前的目标视图控制器代码:
class ModuleVC: UIViewController {
var moduleName: String?
var moduleDescription: String?
override func viewDidLoad() {
super.viewDidLoad()
setUI()
self.navigationItem.largeTitleDisplayMode = .never
self.navigationController?.navigationBar.prefersLargeTitles = false
}
@IBOutlet var moduleNameLabel: UILabel!
@IBOutlet var moduleDescriptionLabel: UILabel!
func setUI() {
guard let moduleName = moduleName, let moduleDescription = moduleDescription else {return}
moduleNameLabel.text = moduleName
moduleDescriptionLabel.text = moduleDescription
}
}
任何帮助,即使是朝着正确方向迈出的一小步,我们都将不胜感激。感谢您的宝贵时间!
【问题讨论】:
标签: ios swift uitableview uiviewcontroller tableview