我目前使用iPad上的Quick Look框架通過Modal View Controller顯示PDF文件。很棒。我的問題是,因爲我正在顯示PDF文件,「快速瀏覽」預覽會自動添加「打印」按鈕。我想要做的是用自定義的「電子郵件」按鈕替換「打印」按鈕。這是可以做到的嗎?在第一階段,我認爲這將是一件微不足道的事情,但在這一點上我真的很困難。任何幫助將不勝感激。如何將自定義按鈕添加到iOS中的快速查看工具欄?
感謝,
佈雷特
我目前使用iPad上的Quick Look框架通過Modal View Controller顯示PDF文件。很棒。我的問題是,因爲我正在顯示PDF文件,「快速瀏覽」預覽會自動添加「打印」按鈕。我想要做的是用自定義的「電子郵件」按鈕替換「打印」按鈕。這是可以做到的嗎?在第一階段,我認爲這將是一件微不足道的事情,但在這一點上我真的很困難。任何幫助將不勝感激。如何將自定義按鈕添加到iOS中的快速查看工具欄?
感謝,
佈雷特
由於QLPreviewController是的UIViewController的子類,你可以利用 - [UIViewController中setToolbarItems:]自定義工具欄。
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(emailPDF)];
NSArray *items = [NSArray arrayWithObject:item];
[previewController setToolbarItems:items animated:NO];
[[self navigationController] presentModalViewController:previewController animated:YES];
現在,當用戶點擊工具欄中的「回覆」圖標時,您的-emailPDF實現將被調用。
您可以創建QLPreviewController的子類,像MyQLPreviewController
然後在viewWillAppear中:(BOOL)動畫(注意!!)
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
UIBarButtonItem *rightRatain = self.navigationItem.rightBarButtonItem;
UIBarButtonItem *email = ...;
self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:right, email, nil];
[email release];
}
工程就像一個魅力 – 2012-06-04 20:35:35
謝謝史蒂芬!我無法得到這個工作。似乎應該但我必須錯過一些東西。我是Objective-C的新手。 'QLPreviewController * ql = [[[QLPreviewController alloc] init] autorelease]; \t ql.dataSource = self; \t ql.currentPreviewItemIndex = indexPath.row; \t UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(emailPDF)]; \t NSArray * items = [NSArray arrayWithObject:item]; \t [ql setToolbarItems:items animated:NO]; \t [self presentModalViewController:ql animated:YES];' – 2011-04-01 00:27:19
Try:[self setToolbarHidden:NO]。 UINavigationController的toolbarHidden屬性默認設置爲YES。 – 2011-04-01 01:30:33
即使使用setToolbarHidden:不,我沒有任何運氣。我可以看到工具欄。它只是沒有響應更新的UIBarButtonItem。我想知道我是否需要以某種方式重寫它?我也想知道是否可以構建PDF預覽。在你的代碼示例中,我看到你指定的位置'[[self navigationController] presentModalViewController:previewController animated:YES]; '。對我來說這是行不通的。如果我使用'[self presentModalViewController:ql animated:YES],我只能讓它工作;''我可能做錯了我如何設置QLPreviewController? – 2011-04-01 19:53:21