所以我的ViewController中有两个UITableViews,如何设置委托&第二个数据源与另一个UITableViewController文件的数据源。
对于第二个,我现在正在创建它
//now add our second tableview
UITableView *addPapersTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 415)];
addPapersTableView.dataSource = self;
addPapersTableView.delegate = self;
[addPapersView addSubview:addPapersTableView];
由于self
位,它显而易见的拉取数据并从同一文件委派。
我会做#import "AddMoreTableViewController.h"
之类的事情吗?
对Objective C来说真的很新,
非常感谢,
塞米松
答案 0 :(得分:5)
你的生活变得复杂。
firstTableView.dataSource = self;
firstTableView.delegate = self;
secondTableView.dataSource = self;
secondTableView.delegate = self;
UITableViewDelegate和UITableViewDataSource协议的所有方法都有一个UITableView *参数,因此您可以处理两个表视图。 例如:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
if (tableView == firstTableView) {
return 1;
}
else {
return 4;
}
}
答案 1 :(得分:2)
按照建议添加导入:
#import "AddMoreTableViewController.h"
确保创建它的实例,然后将 it 设置为其他表的委托/数据源。这是一个粗略的例子(我将把内存管理和语义留给你):
AddMoreTableViewController *controller = [AddMoreTableViewController alloc] init];
myOtherTableView.datasource = controller;
myOtherTableView.delegate = controller;
您必须确保在UITableViewDataSource
中实施协议UITableViewDelegate
和AddmoreTableViewController
。
答案 2 :(得分:1)
或者你可以为这第二个tag
&写一个UITableView
。在委托中,根据tag
。
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView.tag == 1)
//handle table 1 here.
else if(tableView.tag == 2)
//handle table 2 here.
return;
}