我使用的是Xcode的SplitView模板。我已將rootviewcontroller更改爲UIViewController,並將其修改爲NIB,以便它具有tableview和一些其他控件。筆尖中的2個tableviews
我想在NIB中創建另一個tableview和search控件。這是可能的 - 你能在一個NIB中使用2個tableview嗎?
如果是,您將如何區分數據和委託方法?
我使用的是Xcode的SplitView模板。我已將rootviewcontroller更改爲UIViewController,並將其修改爲NIB,以便它具有tableview和一些其他控件。筆尖中的2個tableviews
我想在NIB中創建另一個tableview和search控件。這是可能的 - 你能在一個NIB中使用2個tableview嗎?
如果是,您將如何區分數據和委託方法?
你可以把不同的標記每個的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
}
}
標籤旁邊的另一種方法是有2 IBOutlet中標記tableViews在您的FirstResponder中,並將它連接到InfterfaceBuilder中適當的表格視圖。
看到這樣的代碼:https://github.com/vikingosegundo/my-programming-examples/tree/master/VSCheckFavorites/
比通過控制器的成員加以解決tableviews,即稱爲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,在這裏我展示如何保持兩個父視圖上的桌面視圖,而每個視圖都有自己的控制器
We can have two table views in one NIB.
例如:您有兩個表視圖爲
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){
.........
}
}