FastPdfKit - пользовательский интерфейс отсутствует после реализации didReceiveDoubleTapOnAnnotationRect - PullRequest
1 голос
/ 16 марта 2012

Используя FastPdfKit ( FastPdfKit sdk site ), я реализовал documentViewController:didReceiveDoubleTapOnAnnotationRect со следующим кодом:

-(void)documentViewController:(MFDocumentViewController *)dvc didReceiveTapOnAnnotationRect:(CGRect)rect withUri:(NSString *)uri onPage:(NSUInteger)page {    
  NSArray *arrayParameter = nil;
  NSString *uriType = nil;
  NSString *uriResource = nil;

  arrayParameter = [uri componentsSeparatedByString:@"://"];

  uriType = [NSString stringWithFormat:@"%@", [arrayParameter objectAtIndex:0]];

  uriResource = [NSString stringWithFormat:@"%@", [arrayParameter objectAtIndex:1]];

  if ([uriType isEqualToString:@"pamv1"]) {
    NSString *marker = uriResource;
    NSLog(@"Marker: %@", marker);
  }
}

Это работает, до некоторой степени.Когда я дважды нажимаю на аннотацию, вывод NSLog показывает:

2012-03-15 17:37:53:599 iFlightBag[8286:1799] -[ManualsListViewController documentViewController:didReceiveDoubleTapOnAnnotationRect:withUri:onPage:] [Line 155] Marker: Builtin_Manual_IOM_annotations.pdf?page=3&paragraph=6&edit=0

Проблема: Когда я устанавливаю делегата, я теряю встроенный интерфейс считывателя: нажмите для меню, кнопка «Готово», миниатюрыи т. д. У меня все еще есть пролистывание и постукивание по краю для смены страниц, двойное касание (без аннотации) и масштабирование.Поэтому я не могу выйти из программы просмотра (и всех других функций из интерфейса управления).Я устанавливаю делегата, используя:

[pdfViewController setDocumentDelegate:self];

Весь код для реализации FastPdfKit в моем приложении (в основном из их примера):

-(void)openFastPdfURL:(NSURL *)documentUrl {

  // TestFlight api
  TESTFLIGHT_CHECKPOINT(@"ManualsFastPdfKit");

  /** Set document name */
  NSString *documentName = [documentUrl lastPathComponent];

  /** Get temporary directory to save thumbnails */
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

  /** Set thumbnails path */
  NSString *thumbnailsPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",documentName]];

  /** Get document from the App Bundle */
  // NSURL *documentUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:documentName ofType:@"pdf"]];

  /** Instancing the documentManager */
  MFDocumentManager *documentManager = [[MFDocumentManager alloc]initWithFileUrl:documentUrl];

  /** Instancing the readerViewController */
  ReaderViewController *pdfViewController = [[ReaderViewController alloc]initWithDocumentManager:documentManager];

  /** Set resources folder on the manager */
  documentManager.resourceFolder = thumbnailsPath;

  /** Set document id for thumbnail generation */
  pdfViewController.documentId = documentName;

  /** Set the delegate */
  [pdfViewController setDocumentDelegate:self];

  /** Present the pdf on screen in a modal view */
  [self presentModalViewController:pdfViewController animated:YES]; 

  /** Release the pdf controller*/
  [pdfViewController release];
}

и в моем didSelectRowAtIndexPath:

// fastPdfKit
else if ([manuals.Format isEqualToString:@"fastpdf"]) {
    [self openFastPdfURL:[self locateUrl:[NSURL URLWithString:manuals.Url] ofType:[manuals.Url pathExtension]]];
}

Мои цели: 1. Ускоренное внутреннее средство чтения PDF (завершено) 2. Обработка пользовательских аннотаций (в процессе)

Мне также нужно сохранить пользовательский интерфейс читателя, чтобы пользователь мог обрабатывать закладки,поиск, миниатюры, завершение просмотра и т. д. *

Если я закомментирую строку

[pdfViewController setDocumentDelegate:self];

, появится полный пользовательский интерфейс.Кто-нибудь реализовал интерфейс аннотаций FastPdfKit?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...