我正在构建一个具有一对多关系的Todo应用。数据模型如下:
Todo Lists {
listName: String
todos: NSSets
}
Todos{
todoName: String
list: (not sure but points back to the Todo List)
}
在我的条目表视图中,我获取了所有Todo列表并填充了表格视图。现在,当我点击Todo列表时,我想按下Todo列表prepareForSegue
,然后填充Todos表视图,其中点击了与Todo List相关联的所有待办事项。我不知道如何获取与Todo List相关联的待办事项,并将其传递给下一个视图控制器并准备segue。
答案 0 :(得分:0)
问:我不知道如何获取与点击Todo列表相关联的待办事项并将其传递给下一个视图控制器并准备segue。
如果在Todo
数据结构中您拥有它所属的列表,您可以:
1 - 将列表传递给"列表详细信息视图控制器";
2 - 列表详细信息视图控制器将获取该列表的Todos;
我想是这样的,因为在这种情况下,我不想为我的Todo
加载所有TodoList
s,因为用户可能永远都不会打开列表而我可以节省一些内存。这样你就必须做一些事情:
struct Todo {
let id: String // unique
let name: String
let list: TodoList
}
struct TodoList {
let id: String // unique
let name: String
}
class TodoListDetailViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
var list: TodoList {
didSet {
todos = fetchTodos(from: list)
}
}
private var todos: [Todo]! {
disSet {
tableView.reloadData()
}
}
// Your code.......
}
在显示list
之前,您需要在prepareForSegue
上设置TodoListDetailViewController
变量。
重要的是,我不知道您是如何处理每个数据之间的关系所以我假设您使用的是String
ID。< / p>