Хотя 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];
}