2013-02-20 2 views
2

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

@interface MyQLViewer : QLPreviewController <QLPreviewControllerDataSource, QLPreviewControllerDelegate> { 

}

и в файле .m

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    [[self navigationItem] setRightBarButtonItem:nil]; 
} 

сейчас в моем собственном проекте у меня есть свойство MyQLViewer, что я [MyQLViewer Alloc ] init] в событии viewdidload для xib.

Это не работает. что мне не хватает?

Спасибо.

enter image description here

ответ

1

Насколько я знаю, больше не возможно отключить правую кнопку с прошивкой 6 вы можете прочитать об этом здесь: http://www.cimgf.com/2012/07/11/a-better-fullscreen-asset-viewer-with-quicklook/

обновление: этот способ работает для меня. вызван с задержкой, поскольку он был повторно добавлен, если загрузка документа требует нескольких мгновений

- (void)removeActionButton { 

    if(removeShareCounter > 13){ 
     [removeButtonTimer invalidate]; 

    } 
    else{ 
     //iOs doesn't support setRightBarButtonItem to nil 
     if ([self iOsEqual:6]) { 
      [self inspectSubviewsForView:self.view]; 
     } 
     else{ 
      [self.navigationItem setRightBarButtonItem:nil animated:NO]; 
     } 
     removeShareCounter++; 
    } 
} 

- (void)inspectSubviewsForView:(UIView *)view 
{ 
    if(view != NULL){ 
     if ([view isKindOfClass:[UINavigationBar class]]) 
     { 
      UINavigationBar *bar = (UINavigationBar *)view; 
      if ([[bar items] count] > 0) 
      { 
       UINavigationItem *navItem = [[bar items] objectAtIndex:0]; 
       [self performSelectorOnMainThread:@selector(removeShareButton:) withObject:navItem waitUntilDone:YES]; 
      } 
     } 
     else{ 
      for (UIView *subView in view.subviews) { 
       [self inspectSubviewsForView:subView]; 
      }  
     } 
    } 
} 

-(void)removeShareButton: (UINavigationItem *)navItem{ 
    [navItem setRightBarButtonItems:nil animated:NO]; 
} 
Смежные вопросы