我有以下问题:组合两个TableViewControllers
我有一个应用程序,它使用两个tableViewControllers。第一TableViewController列出
struct Task{
let type: String
[other attributes]
}
这些任务被存储在一个类TaskStore,与存储在应用程序中的所有任务的静态共享实例。
class TaskStore {
var tasks: [Task] = []
class var sharedInstance: TaskStore {
struct Static {
static let instance = TaskStore()
}
return Static.instance
}
}
现在,对于每个任务,我需要存储一组与任务实例关联的子任务。因此,我创建了一个子任务结构
struct Subtask{
let subtype: String
[other attributes]
}
,并创建了一个SubtaskStore类,我修改,使其不再包括静态实例,而是:
class SubtaskStore {
var subtasks: [Subtask] = []
class var sharedInstance: SubtaskStore {
let instance = SubtaskStore()
return instance
}
}
注:这对我来说是很大不是简单地包括子任务的阵列作为工作结构的成员,因为我可以创建该SubtaskStore.sharedinstance的操作的方法更有利。
然后我修改了任务结构如下
struct Task{
let type: String
var subtasks: SubtaskStore // as oppose to: var subtasks [Subtask] = []
}
的想法是,现在每个任务都有自己的SubtaskStore,存储任务的所有子任务在手。
第一个问题:有没有更好的方法来建模任务到子任务的层次结构?我对编程颇为陌生,但设计看起来很直观。
我已经成功地创建,显示在TaskStore的元素和更新当一个新任务添加/去除表的交互式TableViewController。我现在已经在Task TableViewController和SubTask TableViewController之间创建了一个链接;点击一个TaskTableViewCell打开一个新的SubTaskTableViewController(当前为空)。
第二个问题:假设由用户选择的TaskTableViewCell是在第5行我想显示在“TaskStore [4] .subtasks”在SubtaskTableViewController的元素。如何传递来自所选择的TaskTableViewCell数字“4”,在TaskTableViewController到SubTaskTableViewController和显示器上在TaskStore [4] .subtasks.sharedInstace元素?
我会给你买一瓶啤酒,那种陌生人。谢谢! – user227837