我正在尝试开发iPhone应用程序3个月。 我自己在书本或互联网上找到了一切。现在我有一个问题,我无法自己解决。
我想开发一个带有3个标签的tabbar应用程序。 在每个选项卡中都有一个带有tableview的导航控制器。
tableview从Web上的XML文件加载数据。每个选项卡之间的区别仅在于XML-url的区别。 tableview和函数应该在任何地方都一样。
我做了什么?
现在它在每个标签上加载相同的tableview。但我只想更改加载的XML-URL。但我不知道如何实现这一点。
我希望有人能给我一个暗示吗?谢谢!
答案 0 :(得分:0)
您确定需要Tab Bar吗?您可以在源顶部添加更多级别的导航。所以你的导航控制器堆栈就像
UINavigationController
- > SourceViewController
- > ListViewController
- >其余的导航堆栈。
ListViewController
是UITableViewController
的子类,它根据SourceViewController
的选择传递源URL,也可以是UITableViewController
的子类。这样可以避免你想要避免的重复,更可能是你需要的更好的选择。
现在如果你坚持使用标签栏,你的堆栈会更像 -
UITabBarController
将有三个UINavigationController
个实例,每个实例都有自己的ListViewController
实例,就像之前一样,将使用源网址进行初始化。
现在将它减少到单个ListViewController
并将所有导航控制器附加到它可能更聪明。您可以使用选项卡栏委托中的-tabBarController:didSelectViewController:
方法执行此操作。在每个选项卡更改/调用上,清除当前正在为表视图提供数据的缓存,并根据该选项卡的源XML加载适当的缓存。
通常状态会保留在选项卡更改上,但使用此结构时,您将需要执行其他工作才能实现此目的。