iphone app与两个UITableViewController并排

时间:2012-03-27 11:01:14

标签: iphone uitableview

我正在尝试构建一个带有两个表并排的iphone应用程序,其中两个表始终可见且可单独滚动。这可能吗?

我在这个网站上已经阅读了类似问题的一些答案,人们建议使用'两个UITableViewControllers,并排'

听起来就像我需要的那样,但我找不到任何例子。

我的主要问题是:你如何在IB的同一屏幕上实际获得两个UITableViewControllers?

或者,通过在单个UITableViewController中并排使用两个TableView来实现此目的是正确的方法吗?

非常感谢任何帮助

3 个答案:

答案 0 :(得分:1)

您可以在一个nib文件中有两个UITableView(因此它只有一个视图控制器)。但是将2个不同的类(符合UITableViewDataSource协议)设置为2个表视图的数据源。

答案 1 :(得分:1)

虽然我从上面的@Aadhira的答案中得到了初步指导,但我认为我完全回答了我的问题,其他任何可能会觉得有用的人(顺便说一下,我让它工作)

我创建了一个具有以下视图/视图控制器层次结构的故事板

UITableViewController控制器 - UITableView ViewContainer - UITableView Left - UITableView Left

我创建了表视图'ViewContainer'来'包含'我想要绘制的两个表视图(左和右)。之所以我觉得这样做更容易,因为没有其他方法可以调整IB中左右表视图的大小,以便它们只占用屏幕的一半。每当我将它们直接放在表视图控制器控制器中时,它们就会占用全部的宽度(我想我可以以编程方式控制它们的宽度)。将它们放在表视图中ViewContainer允许我调整它们的大小。

我使Controller成为Left和Right的委托和数据源。 然后,在Controller内部,我必须确保我有一些代码来识别正在绘制哪个表(左或右)。 ViewContainer在很大程度上被忽略了,到目前为止我还没有使用它

我将以下代码添加到numberOfSectionsInTableView,numberOfRowsInSection和cellForRowAtIndexPath

 switch (tableView.tag) {
    case 100:   //the requesting object is the Left TableView
    {
        //perform functions specific to Left;         
    }
        break;
    case 200:   //the requesting object is the Right TableView
    {
        //perform functions specific to Right;         
    }
        break;    
    default:
        //error handling code
        break;
}

我将表格视图Left和Right的标签分别设置为100和200。这允许我正确地填充左和右(它们包含不同的对象)

答案 2 :(得分:0)

在iphone中搜索SplitView控制器。您将得到答案