Это абсолютно возможно.
Вероятно, самый простой способ сделать это - создать подкласс UITableView, чтобы каждый создаваемый вами TableView мог иметь уникальный обработчик для своего делегата и источника данных, ala:
DynamicTableView.h
@interface DynamicTableView : UITableView <UITableViewDelegate, UITableViewDataSource> {
NSMutableArray *items;
}
@end
DynamicTableView.m
#import "DynamicTableView.h"
@implementation DynamicTableView
-(id) initWithFrame:(CGRect)frame style:(UITableViewStyle)style {
if (self == [super initWithFrame:frame style:style]) {
items = [[NSMutableArray alloc] initWithObjects:[NSString stringWithFormat:@"%i", [NSDate timeIntervalSinceReferenceDate]],
[NSString stringWithFormat:@"%i", [NSDate timeIntervalSinceReferenceDate]], nil];
}
return self;
}
-(void) dealloc {
[items release];
[super dealloc];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [items count];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [items objectAtIndex:indexPath.row];
return cell;
}
@end
Это очень простая реализация, которая при инициализации заполняет свой источник данных (массив элементов) двумя временными метками.Использовать его так же просто, как что-то вроде:
for (int i = 0; i < 4; i++) {
DynamicTableView *table = [[[DynamicTableView alloc] initWithFrame:CGRectMake(10, (i * 100) + 10, 200, 50) style:UITableViewStylePlain] autorelease];
[table setDelegate:table];
[table setDataSource:table];
[self.view addSubview:table];
}
Изменить DynamicTableView, чтобы принимать любой источник данных, который вы хотите, и как он отображается.
Надеюсь, это поможет!