获取NSSet数据以填充表视图

时间:2017-07-21 14:32:35

标签: ios swift

我正在构建一个具有一对多关系的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。

1 个答案:

答案 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>