我正在使用Xcode的SplitView模板。我已经将rootviewcontroller更改为UIViewController,并且我已经修改为NIB,因此它有一个tableview和一些其他控件。
我想在NIB中创建另一个tableview和搜索控件。这是可能的 - 你能在一个NIB中有2个tableview吗?
如果是,您将如何区分数据和委托方法?
答案 0 :(得分:2)
标记之外的另一种方法是在FirstResponder中添加2个IBOutlet标记的tableView,并将其连接到InfterfaceBuilder中的相应表视图。
请参阅此代码:https://github.com/vikingosegundo/my-programming-examples/tree/master/VSCheckFavorites/
表格视图可以由Controller的成员解决,在Nib中称为FirstResponder
- (void)viewDidLoad {
self.showTableController = [[ShowFavoritesTableController alloc] init];
self.checkTableController= [[CheckTableController alloc] init];
showTable.delegate = self.showTableController;
showTable.dataSource=self.showTableController;
checkTable.delegate = self.checkTableController;
checkTable.dataSource=self.checkTableController;
self.showTableController.tableView = showTable;
self.checkTableController.tableView = checkTable;
[super viewDidLoad];
}
Here I published a sample code,其中我展示了如何在父视图上保存两个Tableview,而每个视图都拥有自己的控制器
答案 1 :(得分:1)
We can have two table views in one NIB.
例如:您有2个表格视图
UITableView *tableView1;
UITableView *tableView2;
您可以使用以下示例代码;
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView{
if(tableView == tableView1)
return 1;
else if(tableView == tableView2)
return 2;
}
-(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
if(tableView == tableView1)
return @"Table View 1";
else if(tableView == tableView2){
if(section == 1)
return @"section 1 in table view 2";
else
return @"section 2 in table view 2";
}
}
-(NSInteger) tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section{
if(tableView == tableView1)
return 5;
else if(tableView == tableView2){
if(section == 0)
return 3;
else
return 4;
}
}
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if(tableView == tableView1){
.........
}
else if(tableView == tableView2){
.........
}
}
答案 2 :(得分:0)
您可以为每个tableView添加不同的标记,如下所示:
tabView1.tag = 100;
tabView2.tag = 200;
以及此委托方法中的例子:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(tableView.tag==100)
{
// Return height of the first tabView
}
else
{
// Return height of the second tabView
}
}