我正在构建一个具有一对多关系的Todo应用程序。数据模型如下:
Todo Lists {
listName: String
todos: NSSets
}
Todos{
todoName: String
list: (not sure but points back to the Todo List)
}在我的条目表视图中,我已经获取了所有的待办事项列表并填充了表视图。现在,当我单击一个待办事项列表时,我希望在按下待办事项列表的情况下执行prepareForSegue操作,然后使用与待办事项列表相关联的所有待办事项单击来填充待办事项表视图。我不确定如何获取与单击的待办事项列表相关联的待办事项,并将其传递给下一个具有prepare for segue的视图控制器。
发布于 2017-07-21 23:07:36
Q:我不确定如何获取与单击的待办事项列表相关联的待办事项,并将其传递给下一个具有prepare for segue的视图控制器。
如果在Todo数据结构上有它所属的列表,则可以:
1--将列表传给"list detail view controller";
2-列表细节视图控制器将获取该列表的待办事项;
我之所以这样想,是因为在这种情况下,我不想为我所有的Todo加载所有的TodoList,因为用户可能永远不会打开一个列表,而我可以节省一些内存。通过这种方式,你必须做一些类似的事情:
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.......
}在显示TodoListDetailViewController之前,需要在prepareForSegue上设置list变量。
很重要的一点是,我不知道您如何处理每个数据之间的关系,所以我假设您使用的是String id。
https://stackoverflow.com/questions/45240319
复制相似问题