我有一组用户
var selectedUsers = [User]()
用户在UITableView中被选中时被添加到此数组中(参见屏幕截图:https://www.dropbox.com/s/uk03mhgi3x4jesy/File%2006-10-2015%2C%2018%2003%2044.png?dl=0)
我遇到的困难是当我按下然后重新加载视图控制器时,所有复选标记都会消失。
无论如何,我可以跟踪所选的细胞吗?
提前致谢
答案 0 :(得分:0)
您可以使用委托在两个viewcontrollers之间传递数组。例如,每次选择行时,都可以在数组中存储与行关联的userId。因此,如果你要按回UdenableView然后打开视图,在加载UITableView之前,你可以先检查是否有一个数组传递给包含UITableView的viewcontroller /如果有一个数组,检查是否有计数如果数组不为空,则使用for循环循环显示正在传递的数组的用户数组,其中包含所有先前选择的id,然后添加与Id的匹配的复选标记。在阵列中。
这是一个拥有类似示例的教程:http://makeapppie.com/2014/08/04/the-swift-swift-tutorial-why-do-we-need-delegates/
答案 1 :(得分:-1)
这个问题的答案有点依赖于您希望应用程序执行的操作...即使应用程序已关闭,您是否希望用户选择仍然存在?如果是这样,请考虑使用NSUserDefaults或CoreData。否则将数据存储在不会被吹走的地方(可能是应用程序的根视图控制器)。例如,您可以使用表视图在视图控制器上实现委托模式,并将值传递给容器视图控制器。只是一些想法。
答案 2 :(得分:-1)
因此,您可以使用NSUserDefaults类来保存少量数据。如果您想拥有持久存储,那么您必须使用Core Data来帮助您使用您提供的方案存储数据。
如果您只想将数据从一个视图控制器传递到另一个视图控制器,那么您只需要使用委托模式,或者您可以使用方法prepareForSegue,您也可以传递一些数据,但不能以这种方式存储,只需传递
如果您更详细地提出问题,您将获得更明确的答案。