Я использую prepareForSeque:sender:
для динамической установки свойств делегата и источника данных UITableView
, прежде чем он будет помещен в стек навигации. Методы делегата никогда не вызываются, и XCode возвращает ошибку ниже. К сожалению, XCode не дает мне большого количества трассировки стека, и единственным указанием того, какой объект используется в качестве источника данных, является экземпляр UIViewControllerWrapperView
, который, я думаю, может быть чем-то, сгенерированным библиотекой раскадровки. Есть идеи? Это даже невозможно?
Ошибка:
* Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [UIViewControllerWrapperView
tableView: numberOfRowsInSection:]: нераспознанный селектор отправлен
экземпляр 0x7f49370 '
Вот мой код:
/**
* Handle the various segues
*
* @author Jesse Bunch
**/
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the selected cell
NSIndexPath *selectedIndexPath = self.tableView.indexPathForSelectedRow;
ReportTableViewCell *cell = (ReportTableViewCell *)[self.tableView cellForRowAtIndexPath:selectedIndexPath];
// Instantiate the selected report's context
// TODO: Insert error handling here
Class reportClass = NSClassFromString([cell.reportInfo objectForKey:@"ReportClass"]);
BaseReportContext *reportContext = [[reportClass alloc] init];
reportContext.delegate = self;
// Get the destination options controller
ReportOptionsTableViewController *optionsController = (ReportOptionsTableViewController *)segue.destinationViewController;
// Let the report context be the delegate of the options controller
// The report context should contain all the information needed
// to display the necessary report customization options
optionsController.tableView.delegate = reportContext;
optionsController.tableView.dataSource = reportContext;
}