从数组UITableView

时间:2015-10-06 16:28:49

标签: ios arrays swift uitableview

我有一组用户

var selectedUsers = [User]()

用户在UITableView中被选中时被添加到此数组中(参见屏幕截图:https://www.dropbox.com/s/uk03mhgi3x4jesy/File%2006-10-2015%2C%2018%2003%2044.png?dl=0

我遇到的困难是当我按下然后重新加载视图控制器时,所有复选标记都会消失。

无论如何,我可以跟踪所选的细胞吗?

提前致谢

3 个答案:

答案 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,您也可以传递一些数据,但不能以这种方式存储,只需传递

如果您更详细地提出问题,您将获得更明确的答案。