Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 更新数据源时不更新表_Iphone_Objective C - Fatal编程技术网

Iphone 更新数据源时不更新表

Iphone 更新数据源时不更新表,iphone,objective-c,Iphone,Objective C,我有一个选项卡栏控制器+导航控制器应用程序。 在选项卡1、2、3中,我有一些表格视图,为用户提供了一些可供选择的项目。一旦用户选择了要添加到购物车中的项目。 表4显示购物车中的项目 我注意到,当用户选择选项卡1、2或3中的项目时,他们会在第一次单击时在购物车选项卡中显示ip 如果用户随后返回选项卡1、2、3并选择更多项目,“购物车”选项卡中的表不会得到更新 我不知道为什么会这样。我在“Cell for Row@IndexPath”方法中编程,每次调用此方法时都从数据源获取数据 我很困惑。想知道我

我有一个选项卡栏控制器+导航控制器应用程序。 在选项卡1、2、3中,我有一些表格视图,为用户提供了一些可供选择的项目。一旦用户选择了要添加到购物车中的项目。 表4显示购物车中的项目

我注意到,当用户选择选项卡1、2或3中的项目时,他们会在第一次单击时在购物车选项卡中显示ip

如果用户随后返回选项卡1、2、3并选择更多项目,“购物车”选项卡中的表不会得到更新

我不知道为什么会这样。我在“Cell for Row@IndexPath”方法中编程,每次调用此方法时都从数据源获取数据

我很困惑。想知道我在这里是否遗漏了什么


感谢您的帮助

该表仅在两种情况下更新其数据

  • 您正在使用“NSFetchedResultsController”来缩小数据与视图之间的差距。只要基础数据发生更改,此控制器就会自动更新视图(类似地,当从视图接收到添加/编辑/删除请求时,也会自动更新数据)

  • 您可以在自己的代码中手动处理这一切,最重要的是在数据源中的数据发生更改后调用
    UITableView
    reloadData
    方法


  • 您必须在表视图中重新加载数据

    [您的表重新加载数据]


    在要显示数据的位置使用此选项

    选项卡4中表格的数据源是否有更新的项目?问题是在模型和视图中,还是仅在视图中?是的,您确实需要接受任何有助于您的答案。今晚我感到很慷慨,但是如果你不花一点时间对你得到的免费帮助表示感谢的话,你的问题将越来越难得到答案。这些似乎也是帮助你的答案:啊。我知道如何接受。对不起,如果我以前没有接受。我只是从这些在线论坛开始,这就是我所缺少的。重新加载数据方法。我没有那样做。我将尝试这种方法。谢谢你的提问。我查阅了NSFetchedResultsController,它看起来只能用于核心数据。我没有使用核心数据。我将数据持久保存在处理tableview的模型对象中。基本上,我将我的选择添加到模型对象中的数组中。然后我只是使用这个数组来获取数据来填充我的Tab4视图。另外,我应该将[tableview reloaddata]放在View Dod load或其他地方的哪个位置?@user657514 ViewWillDisplay是一个更好的位置,因为viewDidLoad只在必须从头开始构建视图时才会被调用,这只会发生在首次创建视图时,以及系统由于内存限制而转储视图并随后显示视图时。顾名思义,每次视图出现时,都会调用ViewWillDisplay。但是,如果您跟踪它是否需要调用会更好,比如一个标志来指示视图已过时:如果表很大或很复杂,重新加载数据可能会占用大量cpu。只有在需要时才会显示重新加载。我明白了。非常感谢,这正是我想要的。