【发布时间】:2011-06-27 08:45:12
【问题描述】:
是否可以在工具栏或 QLpreviewController 右上角的 actionButton 中添加新按钮?
如果是,我如何编写代码?
【问题讨论】:
是否可以在工具栏或 QLpreviewController 右上角的 actionButton 中添加新按钮?
如果是,我如何编写代码?
【问题讨论】:
虽然QLPreviewController 是UIViewController 的子类,但更改导航项无效。例如,此代码理论上应该可以工作,但不能:
QLPreviewController *previewController = [[QLPreviewController alloc] init];
previewController.navigationItem.rightBarButtonItem =
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction
target:self action:@selector(share)]
但是,您可以将工具栏添加到 QLPreviewController。首先将工具栏设置为在加载视图时显示:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.toolbarHidden = NO;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
self.navigationController.toolbarHidden = YES;
}
接下来,从QLPreviewController 委托设置您的工具栏项:
- (id)previewController:(QLPreviewController *)previewController
previewItemAtIndex:(NSInteger)idx {
UIBarButtonItem *testButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Test"
style:UIBarButtonItemStylePlain
target:self
action:@selector(testButtonTapped:)];
NSArray *myToolbarItems = [NSArray arrayWithObjects:testButtonItem, nil];
previewController.toolbarItems = myToolbarItems;
[testButtonItem release];
}
【讨论】:
尝试在您的自定义QLPreviewController 类的viewDidLoad 中设置rightBarButtonItem,如下所示:
import QuickLook
import UIKit
class FileViewController: QLPreviewController {
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = yourButton
}
}
【讨论】: