1

JuliusOklamcakからいくつかの優れたPDF表示コードをコピーしました。https://github.com/vfr/Viewer 変更しない場合は彼のアプリでうまく機能しますが、自分のアプリに入れると混乱します。印刷、ブックマーク、タイル表示のボタンfyiを削除しました。

DONEボタンが機能していません。

これが私が受け取っているエラーです:

2012-12-18 10:01:45.857 TeacherTableView4[1147:907] *** Assertion failure in -[ReaderViewController tappedInToolbar:doneButton:], (...my path to)/TeacherTableView4/ReaderViewController.m:844
2012-12-18 10:01:45.859 TeacherTableView4[1147:907] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Delegate must respond to -dismissReaderViewController:'
*** First throw call stack:
(0x371b52a3 0x3bd9497f 0x371b515d 0x3a2682af 0x40967 0x3c9f1 0x3676f0a5 0x3676f057 0x3676f035 0x3676e8eb 0x3676ede1 0x366975f1 0x36684801 0x3668411b 0x34a4f5a3 0x34a4f1d3 0x3718a173 0x3718a117 0x37188f99 0x370fbebd 0x370fbd49 0x34a4e2eb 0x366d82f9 0x414bd 0x36557b20)
libc++abi.dylib: terminate called throwing an exception

コードは次のとおりです。

- (void)tappedInToolbar:(ReaderMainToolbar *)toolbar doneButton:(UIButton *)button
{
#ifdef DEBUGX
    NSLog(@"%s", __FUNCTION__);
#endif

#if (READER_STANDALONE == FALSE) // Option

[document saveReaderDocument]; // Save any ReaderDocument object changes

[[ReaderThumbQueue sharedInstance] cancelOperationsWithGUID:document.guid];

[[ReaderThumbCache sharedInstance] removeAllObjects]; // Empty the thumb cache

//COMMENTED OUT BY ME
//if (printInteraction != nil) [printInteraction dismissAnimated:NO]; // Dismiss

if ([delegate respondsToSelector:@selector(dismissReaderViewController:)] == YES)
{
    [delegate dismissReaderViewController:self]; // Dismiss the ReaderViewController
}
else // We have a "Delegate must respond to -dismissReaderViewController: error"
{
    NSAssert(NO, @"Delegate must respond to -dismissReaderViewController:");
}

#endif // end of READER_STANDALONE Option
}

私は本当にこの人たちの助けをいただければ幸いです。ありがとう!

4

1 に答える 1

1

このPDF表示コードを使用して同じ問題が発生しました。このメソッドを追加しただけです

- (void)dismissReaderViewController:(ReaderViewController *) viewController 
{
[self dismissModalViewControllerAnimated:YES];
}

fromを呼び出している.mファイルに移動します- (IBAction)didClickOpen。これは主に、ReaderViewController.mで、デリゲートが実装ファイルで宣言されたdismissReaderViewControllerを確認することを期待しているためです。そうしないと、発生しているエラーがスローされます。

注:[self dismissViewControllerAnimated:YES completion:nil];dismissModalViewControllerAnimated:YESは非推奨になっているため、iOS6以降で使用してください:-)

于 2013-01-13T22:24:15.733 に答える