2010-10-26 5 views
0

У меня есть ViewController, которому необходимо использовать 2 UITableViews.
1 всегда отображается, а другой отображается как всплывающее окно после нажатия кнопки на экране.UITableView с несколькими источниками данных

Обычно я устанавливаю делегат и источник данных владельцу файла. Однако, поскольку 1 из UITableViews находится во всплывающем окне, я не уверен, как лучше всего это решить.

e.g Как я могу решить эту часть (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath;

Прошу совета.

Спасибо,
Tee

ответ

7

Вы должны иметь переменный экземпляр для обоего видов таблиц, объявленных в контроллере:

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate> 
{ 
    UITableView *mainTableView; 
    UITableView *popupTableView; 
} 

В каждом источнике данных или метод делегата, вы можете проверить, какой вид таблицы является принятый вызывающим абонентом:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(tableView == mainTableView) 
    { 
    // Code to create and return a main table view cell 
    } 
    else if(tableView == popupTableView) 
    { 
    // Code to create and return a popup table view cell 
    } 
} 
+0

Я как раз собирался набрать то же самое. +1 –

Смежные вопросы