如何从 UIViewController 填充表格视图

Posted

技术标签:

【中文标题】如何从 UIViewController 填充表格视图【英文标题】:How to populate tableviews from UIViewController 【发布时间】:2012-04-19 11:48:54 【问题描述】:

我想在我的滚动视图上添加 4 个 UITableView 并用一些不同的数组填充它们(假设我每个都有一个数组)。我也将此滚动视图添加到我的self.view(我在 UIViewController 类上执行此操作)。我该如何填充我的 Tableviews 任何人都可以帮忙吗?

更多细节:

这是一个屏幕截图;

这是我的 UIViewControllerClass 的界面

#import <UIKit/UIKit.h>

@interface MainMenu : UIViewController<UITableViewDelegate>

@property (retain, nonatomic) IBOutlet UIScrollView *scrollView;
@property (retain, nonatomic) IBOutlet UITableView *group1;
@property (retain, nonatomic) IBOutlet UITableView *group2;
@property (retain, nonatomic) IBOutlet UITableView *group3;
@property (retain, nonatomic) IBOutlet UITableView *group4;

@end//i drag/dropped from IB, so there is no problem with synthesizes..

我想用不同的数组填充这些tableview,如何处理这种情况..?非常感谢

附加说明;我尝试了这样的方法,但没有效果:

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [group1 dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    

    NSArray *array=[NSArray arrayWithObjects:@"one",@"two",@"tree", nil];
    cell.textLabel.text = [array objectAtIndex:indexPath.row];
    return cell;


【问题讨论】:

你没有在界面中输入dataSource,还必须实现方法:-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; 【参考方案1】:

老兄,首先你将 uiviewcontroller de 委托和所有 4 个表的数据源,然后你将为每个表分配一个不同的标签......然后你将添加委托和数据源协议......然后你将像普通的 uitableviewcontroller 一样实现数据源和委托方法...所有这些方法都接收 Uitableview 参数,因此您将测试此表视图的标记,如:

...

if (tableView.tag == 10) 
//implement the table 1
NSArray *array=[NSArray arrayWithObjects:@"one",@"two",@"tree", nil];
cell.textLabel.text = [array objectAtIndex:indexPath.row];

 else if (tableView.tag == 20) 
//implement the table 2
 else if (tableView.tag == 30) 
//implement the table 3
 else if (tableView.tag == 40) 
//implement the table 4


return cell;

这样,您将使用相同的方法来处理所有表格视图。

【讨论】:

但是如何实现 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 它不接受 switch()-case.. 我解决了这个问题,已经很多了(我用你说的标签)

以上是关于如何从 UIViewController 填充表格视图的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Rails 中的 Excel 电子表格填充表格?

如何将数据从基于 plist 的 UITableView 传递到 UIViewController

UIViewController 根视图中的 UITableView 显示

用数组的内容填充表格视图不起作用

如何从 Swift 中的 UITableViewRowAction 向 UIViewController 传递数据?

如何从 Table Cell 返回另一个 UIViewController