iOS - 从其他类的表中重新加载数据

Posted

技术标签:

【中文标题】iOS - 从其他类的表中重新加载数据【英文标题】:iOS - reloadData in table from other class 【发布时间】:2014-06-04 23:56:41 【问题描述】:

我已经阅读了很多关于我的问题的信息,我认为我需要使用委托,但我确实尝试了很多东西,但我无法让它发挥作用。我是初学者,所以我可能会遗漏一些重要的东西!

这就是我所拥有的:

我有一个拆分视图;在一侧,我在另一侧有一个 collectionView 和一个 tableView。我想要实现的是将数据从 collectionView 传递到 tableView。当我单击集合中的一项时,我希望它出现在表格中。所以我的表显示了一个数组,它工作正常,每次我点击集合中的一个项目时,它都会在数组中添加一个字典。这工作正常。 当我在 collectionView 的 didSelectItemAtIndexPath 中尝试重新加载 tableView 时,我的问题就来了。

当我在 tableView 中使用 [self.tableView reloadData] 操作创建一个按钮时,它工作正常。我只是无法从 collectionView 中做到这一点。

我试过了: - Can't use reloadData from another class - ios how to acces [tableView reloadData] from another class

还有更多,但无法使其工作。

感谢您的帮助,

编。

【问题讨论】:

【参考方案1】:

您可以使用 NSNotificationCenter 在 2 个不同的视图之间进行调用。在 TableViewController 中,将以下代码添加到其 viewDidLoad 方法中:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(receiveReloadTableViewNotification:)
                                             name:@"reloadTableViewNotification"
                                           object:nil];

然后将此方法进一步添加到您的 TableViewContoller 中:

- (void)receiveReloadTableViewNotification:(NSNotification *) notification

  [self.tableView reloadData];

现在在您的 CollectionView 中将其添加到按钮的 IBAction:

[[NSNotificationCenter defaultCenter] postNotificationName:@"reloadTableViewNotification"
                                                    object:self];

【讨论】:

太棒了,效果很好,而且比我尝试过的其他东西要简单得多!

以上是关于iOS - 从其他类的表中重新加载数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从其他类重新加载整个 tableview 控制器 [关闭]

从 Ajax GET 方法接收数据后,使用 Django Listview 类重新加载页面

如何重新加载用xib制作的表中的数据

如何从其他(Postgres)数据库加载内存数据库中的数据?

如果表中没有相关数据,则从其他表中提取数据

SQL Server - 从其他表中排除记录