2013-02-20 128 views
2

我使用Quicklook顯示一些PDF文件,用戶只需查看該文件,然後單擊完成即可。默認UI會提供更多選項,如複印或打印電子郵件。 用戶界面還顯示完成按鈕旁邊的箭頭,可以導航到其他可用文件。 這兩個我需要刪除(隱藏)。 現在我瀏覽了大多數帖子,討論了QLPreviewController的子類化以及定製新類。所以我這樣做以下列方式:QuickLook,刪除除完成按鈕之外的所有工具欄按鈕

@interface MyQLViewer : QLPreviewController <QLPreviewControllerDataSource, QLPreviewControllerDelegate> { 

}

,並在.m文件

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

現在在我自己的項目,我有一個MyQLViewer屬性,我[MyQLViewer頁頭] init在xib的viewdidload事件中。

這不起作用。我錯過了什麼?

謝謝。

enter image description here

回答

1

據我所知道的是不再可能與iOS 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]; 
}