如何在 1 个视图控制器中管理 2 个表视图? [英] How to manage 2 tableviews in 1 viewController?

查看:24
本文介绍了如何在 1 个视图控制器中管理 2 个表视图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道在一个 viewController 中管理多个 tableView 的简单方法?到目前为止,我是这样做的:

Does anyone know a simple way to manage several tableViews in one viewController? Here is how I've been doing it so far:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{
if(tableView == self.tableView1) 
return 1;
else if(tableView == self.tableView2) 
return 2;
}

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
if(tableView == self.tableView1) 
return @"bla";
else if(tableView == self.tableView2) 
return @"blabla";
}

-(NSString *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView == self.tableView1) 
...
else if(tableView == self.tableView2) 
...
}

我发现对于每一个委托方法都必须使用 if/else 语句真的很烦人.另外,当有很多 tableViews 时,真的很难阅读.此外,我在 NSURLConnection 等方面也有同样的问题……只要我有几个对象响应相同的委托协议,事情就会变得一团糟.

I find it really annoying that I have to use an if/else statement for EVERY SINGLE delegate method. Plus, it is really hard to read when there are many tableViews. Besides, I have the same problem with NSURLConnection, etc... As soon as I have several objects that respond to the same delegate protocol, things get messy.

让事情变得更简单的最佳方法是什么?谢谢

What is the best way to make things simpler? Thanks

推荐答案

您可以为表视图使用选择器和某种标识符(例如 UIView 标记).像这样的:

You could use selectors and some kind of identifier for the table views (the UIView tag, for example). Something like this:

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
  return [self performSelector:NSSelectorFromString([NSString stringWithFormat:@"tableView%d:titleForHeaderInSection:", tableView.tag])];
}

当然,您需要为每个表视图设置一种方法.假设您的两个表有标签 100 和 101,那么您将有 tableView100:titleForHeaderInSectiontableView101:titleForHeaderInSection.

Of course you will need to have one method for each of your table views. Suppose your two tables have a the tags 100 and 101, you will have then tableView100:titleForHeaderInSection and tableView101:titleForHeaderInSection.

这篇关于如何在 1 个视图控制器中管理 2 个表视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆