Несколько UITableViews на одном UIView
Мне нужно иметь два UITableViews на одном UIView. Я могу заставить его работать с одним, Вот код:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [contentOne count]; // sets row count to number of items in array
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
NSString *firstValue = [[NSString alloc] initWithFormat: @"Row %i% %", indexPath.row+1 ];
NSString *secondValue = [contentOne objectAtIndex:indexPath.row];
NSString *cellValue = [firstValue stringByAppendingString: secondValue]; // appends two strings
[cell.textLabel setText:cellValue];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
Я пробовал несколько разных методов. Кто? Если бы я мог назвать каждый UITableView другим именем, которое должно это сделать, но оно не позволит мне редактировать tableView ни к чему другому без сбоев.
3 ответов
Так что вам нужно как-то сказать этим двоим tableView
S Отдельно--вы можете либо установить свойство "tag" в разные значения, либо иметь свойство на контроллере представления, которое указывает на каждый вид
@property (nonatomic, retain) IBOutlet UITableView *tableView1;
@property (nonatomic, retain) IBOutlet UITableView *tableView2;
затем подключите их к каждому представлению в interface builder...
тогда в ваших методах контроллера вида вы можете сделать
(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (tableView == self.tableView1) {
return 37;
} else if (tableView == self.tableView2) {
return 19;
} else {
// shouldn't get here, use an assert to check for this if you'd like
}
}
вероятно, самый простой способ реализовать это-иметь два класса делегатов и источников данных, по одному для каждого представления таблицы. Это уменьшило бы количество вхождений if (tableview == tableview1) в коде контроллера представления.