2010-11-03 3 views
0

Я использую шаблон SplitView Xcode. Я изменил rootviewcontroller как UIViewController, и я изменил его в NIB, чтобы иметь представление tableview и несколько других элементов управления.2 tableviews in a nib

Я хочу создать еще один элемент управления таблицей и поиском в NIB. Возможно ли это - можете ли вы иметь 2 таблицы в одном NIB?

Если да, то как вы будете дифференцировать данные и методы делегирования?

ответ

0

Вы можете поместить другой тег для каждого Tableview так:

tabView1.tag = 100; 
tabView2.tag = 200; 

и для Exemple в этом методе делегата:

- (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, где я показываю, как держать две Tableview на родительское представление в то время как каждый из них имеет его собственный контроллер

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