iPhone在一个视图上有多个UITableView控件

iPhone在一个视图上有多个UITableView控件,iphone,ios4,Iphone,Ios4,在一个视图上使用多个UITableView时,我遇到了一个小问题 以下是我到目前为止所做的工作(使用这里和其他地方的示例等): 为每个表创建一个类。每门课都很基础: NSMutableArray *tableItems = [[NSMutableArray alloc] initWithCapacity:intMax]; //strDocumentType is set elsewhere and loaded here if(strDocumentType == @"typea"){

在一个视图上使用多个UITableView时,我遇到了一个小问题

以下是我到目前为止所做的工作(使用这里和其他地方的示例等):

为每个表创建一个类。每门课都很基础:

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  */
}