Intereting Posts
Как изменить цвет индикатора UIScrollView? приложения работают на iPhone 5, но не на iPhone 4s получают ошибку SIGABRT swift: преобразование SKShapeNode в SKSpriteNode -> Без текстуры Не удается endBackgroundTask: нет фоновой задачи с идентификатором 23? Проблема при открытии файла docx в IPad в браузере Знание программно, если данные ячейки отключены для приложения для iOS Поддерживает ли YouTube параметры поддержки перехода на новую версию iOS Текстовое поле автофокусировки в UIWebview Оптимизация CKFetchRecordZoneChangesOperation для извлечения желаемых ключей tableView: commitEditingStyle: forRowAtIndexPath: вызывает сбой утверждения hasSelectRowAtIndexPath индексный путь после фильтра UISearchController – Swift to-many не срабатывает при передаче объектаID между контекстами Как вставить UIImagePickerController внутри UITabbarController Как предотвратить синюю подсветку при выборе строки из таблицыView.allowsMultipleSelectionDuringEditing = YES Уведомление push iOS возвращает старые уведомления на экран блокировки

2 UITableViews в 1 ViewController. Установите Delegate & DataSource в другой файл UITableViewController

Таким образом, у меня есть два UITableViews в моем ViewController, как мне установить делегат и источник данных второго на другой файл UITableViewController.

Для второго я сейчас создаю его так

//now add our second tableview UITableView *addPapersTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 415)]; addPapersTableView.dataSource = self; addPapersTableView.delegate = self; [addPapersView addSubview:addPapersTableView]; 

И из-за self бита, его очевидные данные вытягивания и делегируются из того же файла. Я делаю что-то вроде #import "AddMoreTableViewController.h" а потом что-то?

Действительно новый для Objective C,

высоко оценил,

Dex

Добавьте свой импорт, как вы сказали:

 #import "AddMoreTableViewController.h" 

Не забудьте создать его экземпляр, а затем установите его как делегат / источник данных из вашей другой таблицы. Вот приблизительный пример (я оставлю управление памятью и семантику до вас):

 AddMoreTableViewController *controller = [AddMoreTableViewController alloc] init]; myOtherTableView.datasource = controller; myOtherTableView.delegate = controller; 

Вы должны убедиться, что вы реализуете протоколы UITableViewDataSource и UITableViewDelegate в AddmoreTableViewController .

Вы усложняете свою жизнь.

 firstTableView.dataSource = self; firstTableView.delegate = self; secondTableView.dataSource = self; secondTableView.delegate = self; 

все методы протоколов UITableViewDelegate и UITableViewDataSource имеют параметр UITableView *, поэтому вы можете обрабатывать обе таблицы. В примере:

 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { if (tableView == firstTableView) { return 1; } else { return 4; } } 

Или вы можете написать tag для этого второго UITableView & в делегатах обрабатывать разные таблицы по-разному на основе их tag .

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if(tableView.tag == 1) //handle table 1 here. else if(tableView.tag == 2) //handle table 2 here. return; }