我有以下問題:組合兩個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