我有一个TableViewController
(tvc2),而不是使用ViewController
来显示另一个TableViewController
(tvc1)的详细信息,我使用了tvc2。基本上,tvc2是一个仅显示细节的分组表。但是我需要在tvc2里面另一个tableView
(tv3)这是一个列表。 tableViewCell
的每个tableView
都应该被另一个细节ViewController
所包围。
我的问题是,我可以在tableView
内添加TableViewController
吗?如果可能,我如何区分numberOfSectionsInTableView
,numberOfRowsInSection
和cellRowAtIndexPath
方法从TableView
到TableViewController
?
答案 0 :(得分:8)
是,你可以。
创建UITableView
时,您需要设置dataSource
和delegate
。在您的情况下,两个tableView的dataSource
和delegate
为tvc2
。
在dataSource和delegate方法中,您需要为每个tableView分叉代码(例如,tableView:numberOfRowsInSection:
):
-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == tableView1)
{
//Your code
}
if (tableView == tableView2)
{
//Your code
}
if (tableView == tableView3)
{
//Your code
}
}
答案 1 :(得分:1)
使用UISearchDisplayController非常简单。您只需要在delegate / dataSource方法中检查tableView
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.tableView) return 1; // tvc1 is self
if (tableView == tvc2.tableView) return 2;
return 0;
}
答案 2 :(得分:0)
是的,你必须这样做。示例代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
if(row == 0){
Grupo_DAO *grupo_bd = [[Grupo_DAO alloc] init];
static NSString *CellTableIdentifier = @"PL";
UINib *nib = [UINib nibWithNibName:@"PeriodoLectivoView" bundle:nil];
[tableView registerNib:nib forCellReuseIdentifier:CellTableIdentifier];
PeriodoLectivo *cell = [tableView dequeueReusableCellWithIdentifier:CellTableIdentifier];
computerGrupos = [grupo_bd ObtenerGrupos: identAsig];
Grupo_DTO *grupoprueba = [[Grupo_DTO alloc] init];
grupoprueba = [computerGrupos objectAtIndex:section];
cell.Inicio = grupoprueba.inicio;
cell.Fin = grupoprueba.fin;
return cell;
}else{
....
}
我在UITableView的另一个表中添加了第0行。对于UITableViewController内部的表,您必须创建.m和.h文件(在此示例中为@“PeriodoLectivoView” - > ListaPeriodoLectivo.m)。在这个文件中你有方法umberOfSectionsInTableView,numberOfRowsInSection和cellRowAtIndexPath等。
希望它有所帮助。