nmo*_*lot 8 iphone delegates uitableview
有谁知道在一个viewController中管理几个tableViews的简单方法?到目前为止,我一直在这样做:
-(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)
...
}
Run Code Online (Sandbox Code Playgroud)
我发现我必须为每个单一委托方法使用if/else语句真的很烦人.另外,当有很多tableView时,它真的很难读.此外,我对NSURLConnection等有同样的问题......只要我有几个对象响应相同的委托协议,事情就会变得混乱.
让事情变得简单的最好方法是什么?谢谢
您可以为表视图使用选择器和某种标识符(UIView例如,标记).像这样的东西:
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [self performSelector:NSSelectorFromString([NSString stringWithFormat:@"tableView%d:titleForHeaderInSection:", tableView.tag])];
}
Run Code Online (Sandbox Code Playgroud)
当然,您需要为每个表视图使用一种方法.假设你的两个表有一个标签100和101,那么你将拥有tableView100:titleForHeaderInSection和tableView101:titleForHeaderInSection.
| 归档时间: |
|
| 查看次数: |
7782 次 |
| 最近记录: |