我在GitHub中使用Leaves示例代码在collectionviewcontroller的detailviewcontroller中按下UIButton时显示pdf文件。
不同之处在于Leaves项目正在使用Tableviewcontroller,但我正在使用带有storyboard segue的集合视图控制器。在detailviewcontroller中有一个uibutton,它在按下时显示pdf文件。但是当按下那个uibutton时它会给出错误
应用程序正在崩溃,并且在崩溃的日志中它说 NSObject无法识别选择器,当应用程序崩溃时,它会出现错误由于未捕获的异常而终止应用程序'NSInvalidArgumentException',原因:[LeavesCache setDataSource:]:无法识别的选择器已发送到实例
nsobject是LeavesCache,选择器是我按下以显示pdf文件的uibutton
这是用于显示pdf文件的uibutton的detailviewcontroller中的编码
- (IBAction)ReadAction:(id)sender { [self performSegueWithIdentifier:@"MySegue" sender:sender];}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"MySegue"]) {
// Get destination view
PDFViewController *pdfviewController = [segue destinationViewController];
NSInteger tagIndex = [(UIButton *)sender tag];
[pdfviewController setSelectedButton:tagIndex]; } }
答案 0 :(得分:1)
dataSource在原始项目中可能是UITableView的委托实现在UITableViewDataSource中声明的委托方法。
您确定尝试将dataSource设置为具有该属性的类吗?在原始项目中,他们可能有一个UITableViewController或UITableView(有一个属性dataSource可以设置),你可以使用其他没有...的类。
正如“Hot Licks”试图告诉你,在他的评论中,你得到的错误仅仅是因为你试图在一个不是UITableView的类中设置一个委托并且没有获得该属性。 (你也可以在IBuilder中做到这一点)