如何使用一个视图控制器上的按钮将文本添加到另一个视图控制器中的表视图中的行?

问题描述:

所以我对iOS还是很新的,这对我来说有点问题。我(试图)在屏幕上显示文本标签的练习应用程序,如果用户喜欢该文本标签,那么他们可以喜欢它。然后,所有用户最喜欢的文本标签都会出现在表格视图中。我的问题是我如何利用按钮将文本标签添加到表格视图?基本上,我很困惑如何制作收藏夹列表。为了更清楚起见,这里是我的问题的一个非常简单的物理表示。如何使用一个视图控制器上的按钮将文本添加到另一个视图控制器中的表视图中的行?

我想从这个去:

http://i.stack.imgur.com/3irmh.png

对此,当用户点击该按钮:

http://i.stack.imgur.com/HdSnP.png

,并能够保持填充表视图时该按钮被按下。我尝试过研究它,但是我发现的一切都是关于如何使用表视图上的按钮将新行添加到表视图;这不是我要找的。有什么想法吗?

+0

此外,我使用的是导航控制器,因为我希望表格视图以模态方式呈现,就好像它从屏幕底部向上滑动一样。 – Tony

+0

您可能需要一个包含所有“最喜爱”文本的用户类排序。然后,当他们查看他们的最爱时,它会从该阵列中拉出文本。 – ndomin

你的表格视图是数据驱动的,也就是说它的内容是由NSArray或类似的东西创建的。您可能熟悉UITableViewDatasource,它至少会查询数据以显示要​​显示的项目数量和单元格的内容。所以你的按钮需要做的就是将一个标签(最简单的说就是一个NSString *)添加到数组中。表视图是从数组中的内容创建的 - 基本上,您所做的全部工作是[tableView reloadData],并且新内容显示在表中。

如果表视图在另一个视图控制器中,则使该数组成为该视图控制器上的一个属性。当您在一个控制器上构建数组并且想要使用表视图切换到控制器时,只需在创建表视图的视图控制器之后但在将其推入导航堆栈之前将其设置在表视图的视图控制器上。

+0

好吧,我跟着你直到最后。我让我的按钮添加一个字符串到一个可变数组。然后我添加了一条NSLog语句以确保它能够工作,并且它已经完成。但是,当我试图填充表视图时,我没有看到任何东西,并且数组似乎为空。我想我可能会遗漏你最后一段的解释,但对我来说还是有点困惑。我是在tableViewController上创建另一个数组,然后用初始数组设置它,或者...?我不确定... – Tony

+0

您只需要确定您的新视图控制器(具有表视图的视图控制器)的数组属性中填充了您希望在表中显示的事物列表。 UITableViewDatasource方法将从该数组中填充表。在新的视图控制器中,属性应该是NSArray,因为它不会在该视图控制器中更改。你提到的旧视图控制器有一个可变数组。做一些像newViewController.tableItemsSourceArray = [NSArray arrayWithArray:self.myMutableArray]; –

+0

最后一个问题:我在哪里添加最后一点代码,newViewController.tableItemsSourceArray = [NSArray arrayWithArray:self.myMutableArray]; ?用户点击按钮时,还是在prepareForSegue或其他东西? – Tony