iPhone在一个视图上有多个UITableView控件
在一个视图上使用多个UITableView时,我遇到了一个小问题 以下是我到目前为止所做的工作(使用这里和其他地方的示例等): 为每个表创建一个类。每门课都很基础:iPhone在一个视图上有多个UITableView控件,iphone,ios4,Iphone,Ios4,在一个视图上使用多个UITableView时,我遇到了一个小问题 以下是我到目前为止所做的工作(使用这里和其他地方的示例等): 为每个表创建一个类。每门课都很基础: NSMutableArray *tableItems = [[NSMutableArray alloc] initWithCapacity:intMax]; //strDocumentType is set elsewhere and loaded here if(strDocumentType == @"typea"){
NSMutableArray *tableItems = [[NSMutableArray alloc] initWithCapacity:intMax];
//strDocumentType is set elsewhere and loaded here
if(strDocumentType == @"typea"){
[tableItems addObject:@"Type A - Value 1"];
[tableItems addObject:@"Type A - Value 2"];
}
else {
[tableItems addObject:@"Type B - Value 1"];
}
if(jobTableController == nil){
jobTableController = [[ConstructionDocumentsJobTable alloc] init];
[jobTableController loadView];
jobTableController.tableItems = tableItems;
jobTableController.tableSelectDelegate = self;
}
[tableJobList setDataSource:jobTableController];
[tableJobList setDelegate:jobTableController];
jobTableController.view = jobTableController.tableView;
.h:
两者完全相同,请保存名称
当我调用第一个时,它在视图控制器的ViewDidLoad方法中被调用。这很基本:
NSMutableArray *tableItems = [[NSMutableArray alloc] initWithCapacity:intMax];
//strDocumentType is set elsewhere and loaded here
if(strDocumentType == @"typea"){
[tableItems addObject:@"Type A - Value 1"];
[tableItems addObject:@"Type A - Value 2"];
}
else {
[tableItems addObject:@"Type B - Value 1"];
}
if(jobTableController == nil){
jobTableController = [[ConstructionDocumentsJobTable alloc] init];
[jobTableController loadView];
jobTableController.tableItems = tableItems;
jobTableController.tableSelectDelegate = self;
}
[tableJobList setDataSource:jobTableController];
[tableJobList setDelegate:jobTableController];
jobTableController.view = jobTableController.tableView;
选择第一个表中的单元格时,将生成第二个表。因此,在第一个表选择方法中,从父控制器调用委托,然后父控制器具有以下功能:
NSMutableArray*tableTypeItems=[[NSMutableArray alloc]initWithCapacity:100]
if(tableSelect == @"plumbing"){
[tableTypeItems addObject:@"Something"];
[tableTypeItems addObject:@"Other"];
}
if(typeTableController == nil){
typeTableController = [[ConstructionDocumentsTypeTable alloc] init];
[typeTableController loadView];
typeTableController.tableItems = tableTypeItems;
typeTableController.tableSelectDelegate = self;
}
[tableTypeList setDataSource:typeTableController];
[tableTypeList setDelegate:typeTableController];
typeTableController.view = typeTableController.tableView;
[typeTableController.tableView reloadData];
//Code to move the first table off the screen and move this one into view goes here
这件事我已经坚持了好几天了,我真的需要把它做完
我相信这是非常简单的事情
非常感谢你们能提供的任何帮助
谢谢大家。您唯一的定义项在标题中是稳定的,请尝试定义另一个表,然后在您的
cellforrowatinexpath
中尝试以下操作:
if(itemsTable1){
/* stuff for first table */
} else {
/* stuff for second table */
}
对每个UITableVIew委托执行相同的操作但是TableView在两个独立的类中。他们彼此一无所知。也许我误解了你的建议…如果他们在同一个控制器上,那么你应该对我的例子很好。这就是你的问题/代码的外观。重复问题:试试这个
if(itemsTable1){
/* stuff for first table */
} else {
/* stuff for second table */
}