一个视图控制器内的多个tableview

时间:2013-09-07 19:37:16

标签: ios uitableview viewcontroller

如果可以在一个ViewController中使用多个uiTableView,我就会徘徊。

例如:

一个视图控制器中的tableView1和tableView2。

视图控制器的初始启动,应该禁用tableView2并且不可见。

tableView1应该显示与之关联的数据。

当用户从tableView1中选择一行时,它应该显示与tableView2中所选行对应的数据。

仍应启用tableView1,如果用户选择另一行,则tableView2的内容也应分别更改。

感谢您提供的任何帮助或指导。 :)

2 个答案:

答案 0 :(得分:5)

当然你可以这样做。这是故事板中的5分钟。

您应该选择UIViewController(不是UITableViewController!) 并创建这样的东西:

enter image description here

然后你应该用ctrl键创建对象引用。

enter image description here

您必须记住,您必须将两个tableView中的delegate和dataSource设置为ViewController:

enter image description here

在第二个表视图中,将initialView设置为隐藏。

然后在方法- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath的代码中,您应该在第一行调用:

[self.mySecondTableView setHidden:NO]

以后做你所有的事情。就是这样。

enter image description here

修改 现在我意识到你已经将主题设置为“多个”tableViews。对于两个TableView,这个解决方案非常混乱。我建议你使用容器,然后所有tableView都有自己的ViewController。

答案 1 :(得分:0)

您可以为这两个TableView设置不同的标签和插座。

然后在

-(void)ViewDidLoad

self.yourSecondTableView.hidden = YES;

隐藏第二个tableView

以及何时调用委托方法

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

你可以要求提供像

这样的标签
if (tableView.tag == yourSecondTableViewTag) 
    return something