如何从 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 填充表格视图的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从基于 plist 的 UITableView 传递到 UIViewController
UIViewController 根视图中的 UITableView 显示