На самом деле вы не можете поместить два делегата и два источника данных для двух таблиц в один контроллер представления.
Вы можете использовать флаг или скрытую метку UILabel, в которой вы устанавливаете уникальное значение и обращаетесь к источнику данных и делегатам на основе значения флага или метки.
Например:
Если у меня есть 2 таблицы, одна для Покупка и одна для Продажа
Я установлю UILabel с именем скажем tableIdentifier
tableIdentifier.text = @"Buy";
когда я хочу загрузить Buy table
и аналогично установленному
tableIdentifier.text = @"Sale";
когда я хочу загрузить Sale стол
Теперь, что касается методов источника данных и делегата, вот как это происходит:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
int rows = 0;
if([tableIdentifier.text isEqualToString:@"Buy"])
{
rows = //Your row count for Buy;
}
else if([tableIdentifier.text isEqualToString:@"Sale"])
{
rows = //Your row count for Sale;
}
return rows;
}
Аналогичным образом он работает для каждого из методов делегата и источника данных на основе значения метки или флага.
Примечание:
Если вы используете метку, как я показал выше, тогда вам нужно outlet
эту метку скрытой метке в XIB и @synthesize
метку, в противном случае ее значение вернется к нулю в случае, если значение не сохраняется ,
Надеюсь, это поможет вам
EDIT:
В этом случае вы можете считать как [plist1Array count] + [plist2Array count]
в numberOfRowsInSection:
метод
В методе cellForRowAtIndexPath:
вы можете проверить indexPath.row и загрузить данные на основе этого
if(indexPath.row <=[plist1Array count])
{
//Load data in cell.textLabel.text From `plist1Array`
}
else if(indexPath.row >[plist1Array count] && indexPath.row <[plist2Array count])
{
//Load data in cell.textLabel.text From `plist2Array`
}
EDIT-1:
Если вы хотите, вы можете просто показать их в разных разделах одной и той же таблицы, а не в двух разных таблицах, таких как
В numberOfRowsInSection:
метод
int j = 0;
if(indexPath.section == 0)
{
j=[plist1Array count];
}
else if(indexPath.section == 1)
{
j=[plist2Array count];
}
return j;
А в cellForRowAtIndexPath:
метод
if(indexPath.section == 0)
{
//Load data in cell.textLabel.text From `plist1Array`
}
else if(indexPath.section == 1)
{
//Load data in cell.textLabel.text From `plist2Array`
}
Надеюсь, это поможет