在不使用故事板的情况下使用tabbar控制iOS中的tableview数据

时间:2014-02-18 11:19:54

标签: ios arrays tableview tabbar

我正在构建一个主要显示tableview的应用程序。在这个tableview中我有一些自定义表行。表行填充了从服务器接收的数据。我从服务器收到多种数据。我将它存储在数组中。

例如,我有三种数组。每个都充满了从服务器收到的不同类型的数据。见下文:

(NSArray*)carList_
(NSArray*)motorcycleList_
(NSArray*)bicycleList_

我现在拥有的实际程序,只显示tableview中的carList。 CarList中的Foreach车,有一排桌子。

我想要做的事情有点棘手。我想在屏幕底部添加一个带有三个按钮的标签栏。当我按下第一个按钮时,我想要用carList填充表格。当我按下第二个按钮时,我想用motorcycleList填充表格。当我按下第三个按钮时,我想用自行车列表填充表格。

如您所见,我将使用相同的tableview。我只会用我想看到的数据重新填充它。 在iOS中是否允许这样做?因为我读过有关tabbar用于多个视图的内容,我只想用它来更改表格中的数据。只有我为未来发展计划的第四个按钮才会打开一个新视图。如果不允许,那么做什么是好的选择呢?按钮可能吗?我在网上搜索了我想要做的事情,但似乎以前从未使用过我的想法,我认为我的想法在iOS中是不允许的。

此时我有一个initialViewController(几乎没有代码,因为它只用于初始化服务器的某些东西。它就像一个启动画面),我有一个rootViewController可以完成工作。在rootViewController中,我得到了Table with Table行,它有不同的数据数组,这些数据是在加载rootViewController时调用的方法检索的。

我在没有故事板的情况下编程,因为我喜欢编码,我想了解它是如何工作的“地下”。如果允许我想用它做什么,实现tabbar的好方法是什么?我不认为标准选项卡控制器会起作用,因为我只使用一个视图。

2 个答案:

答案 0 :(得分:1)

当然,您可以使用UITabBar解决方案。然而,这可能不是很有用,这不是UITabBar背后的想法。您可以在每个选项卡中实例化相同的TableViewController。在这种情况下,您可以使用相同的类,但是当用户在选项卡中循环时,您可以使用此类的实例。这显然是浪费记忆。

你的描述听起来像是一个带有UISegmetenControl的UIToolBar,可能更适合你的需求。您也可以将它放在屏幕的底部,您只需要一个TableViewController来存储数据。

答案 1 :(得分:0)

UISegmentedControl用于在不同的数据表示之间切换。它也常用于在表数据源之间切换。但它经常出现在视图的顶部 。查看 App Store 应用的热门图表标签。

标签栏旨在为每个标签显示不同的视图。以下是实现结果的进度步骤:

  • 为每个选项卡使用表视图控制器的不同实例
  • 配置每个实例以显示一个特定数组,具体取决于选项卡位置
  • 将数组保存在外部(表外视图控制器)存储中,实例应该具有访问权限
  • 当用户正在检查活动标签时,最好预加载数据。因此,可以在AppDelegate中加载表视图控制器之外的数据。当数据可用时,使用通知更新表视图。