拆分视图控制器根目录中的标签栏 - 如何连接到详细信息视图?

时间:2011-02-20 04:26:09

标签: ipad tabbar uisplitview

在我的第一个iPad项目上工作,经过多次错误的启动,我有一个基本的界面,我很满意,它包含一个Split View Controller,在Root / Popover底部有一个4-tab Tab Bar。

我为4个标签中的每一个都有4个不同的视图控制器。其中三个包含表格,第四个包含我的设置滑块和表格。开关。所有这一切在肖像或风景中都很好。

我面临的挑战是如何从这些不同的标签中驱动详细信息视图。我不一定需要多个详细信息视图,因为所有3个表都将引用相同的数据,只是排序不同。因此,它们可能都连接到相同的详细信息视图。

我还没有找到像这样使用Tab栏的任何其他例子,但它似乎是我的应用程序的完美解决方案。

如何建立连接,以便在选择表格单元格时,详细信息视图中会显示detailItem信息?标签栏已添加到IB中的根视图中。我应该以编程方式添加它吗?

有没有人有一个示例项目,你可以让它工作?

谢谢!

1 个答案:

答案 0 :(得分:0)

不要过于陷入“tabbar”部分。考虑一个更简单的应用程序如何工作:如果您在RootViewController中选择一个单元格,您将如何通知DetailViewController?

它不会是自动的。最有可能的是,您将拥有从RootViewController到DetailViewController的专用连接 - 您将从RootViewController调用DetailViewController上的某些方法,例如

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
RootViewController中的

方法。实际上,这就是模板UISplitView iPad应用程序的设置方式。从RootViewController到DetailViewController有一个IBOutlet连接。

只要您正确管理内存(保留,释放) - 如果每个(根)视图控制器(在选项卡视图中)都与单个DetailViewController有连接,则应该没有问题。为了防止标签控制器彼此踩踏,您可能希望将逻辑集中到“中间人”类中。也许你想在ViewControllerB对ViewControllerA刚刚排序的细节进行排序之前清理一些东西......

这部分取决于你。请注意,没有后端黑魔法,因此DetailViewController会自动更新,以显示基于任何RootViewController中选择的单元格的内容。