-1

collectionviewcontrollerのdetailviewcontrollerでUIButtonを押下した際にpdfファイルを表示するためにGitHubのLeavesサンプルコードを使用しています。

違いは、Leaves プロジェクトは Tableviewcontroller を使用していますが、im はストーリーボード セグエでコレクション ビュー コントローラーを使用していることです。詳細viewcontrollerには、押されたときにpdfファイルを表示するuibuttonがあります。しかし、そのuibuttonを押すとエラーが発生します

アプリがクラッシュし、クラッシュ ログにNSObject doesnotrecognizeselectorと表示され、アプリがクラッシュするとエラーTerminating app due to uncaught exception 'NSInvalidArgumentException', reason: [LeavesCache setDataSource:]: unrecognized selector sent to instance が発生する

nsobject は LeavesCache であり、selector は、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]; } }
4

1 に答える 1

1

dataSource は、元のプロジェクトでは、UITableViewDataSource で宣言されたデリゲート メソッドを実装する UITableView のデリゲートである可能性があります。

そのプロパティを持つクラスに dataSource を設定しようとしてもよろしいですか? 元のプロジェクトでは、UITableViewController または UITableView (プロパティ dataSource が設定されている) を持っている可能性があり、そうでない他のクラスを使用することができます...

「Hot Licks」が彼のコメントであなたに伝えようとしているように、あなたが得ているエラーは、UITableView ではなく、そのプロパティを持っていないクラスでデリゲートを設定しようとしているからです。(そして、IBuilderでもこれを行った可能性があります)

于 2013-06-18T16:24:38.227 に答える