2010-11-03 83 views
0

我使用的是Xcode的SplitView模板。我已將rootviewcontroller更改爲UIViewController,並將其修改爲NIB,以便它具有tableview和一些其他控件。筆尖中的2個tableviews

我想在NIB中創建另一個tableview和search控件。這是可能的 - 你能在一個NIB中使用2個tableview嗎?

如果是,您將如何區分數據和委託方法?

回答

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 
    } 
} 
2

標籤旁邊的另一種方法是有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,在這裏我展示如何保持兩個父視圖上的桌面視圖,而每個視圖都有自己的控制器

1
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){ 
     ......... 
    } 
}