带有不同数据的Tabbar

时间:2011-05-15 15:57:26

标签: iphone

我正在尝试开发iPhone应用程序3个月。 我自己在书本或互联网上找到了一切。现在我有一个问题,我无法自己解决。

我想开发一个带有3个标签的tabbar应用程序。 在每个选项卡中都有一个带有tableview的导航控制器。

tableview从Web上的XML文件加载数据。每个选项卡之间的区别仅在于XML-url的区别。 tableview和函数应该在任何地方都一样。

我做了什么?

  • 创建了一个tabbar应用程序
  • 将3个导航控制器放在MainWindow.xib的标签栏控制器中
  • 每个导航控制器中的每个视图都指向相同的“TableView”类

现在它在每个标签上加载相同的tableview。但我只想更改加载的XML-URL。但我不知道如何实现这一点。

我希望有人能给我一个暗示吗?谢谢!

1 个答案:

答案 0 :(得分:0)

您确定需要Tab Bar吗?您可以在源顶部添加更多级别的导航。所以你的导航控制器堆栈就像

UINavigationController - > SourceViewController - > ListViewController - >其余的导航堆栈。

ListViewControllerUITableViewController的子类,它根据SourceViewController的选择传递源URL,也可以是UITableViewController的子类。这样可以避免你想要避免的重复,更可能是你需要的更好的选择。

现在如果你坚持使用标签栏,你的堆栈会更像 -

UITabBarController将有三个UINavigationController个实例,每个实例都有自己的ListViewController实例,就像之前一样,将使用源网址进行初始化。

现在将它减少到单个ListViewController并将所有导航控制器附加到它可能更聪明。您可以使用选项卡栏委托中的-tabBarController:didSelectViewController:方法执行此操作。在每个选项卡更改/调用上,清除当前正在为表视图提供数据的缓存,并根据该选项卡的源XML加载适当的缓存。

通常状态会保留在选项卡更改上,但使用此结构时,您将需要执行其他工作才能实现此目的。