如何将UIBarButtonItem添加到QLPreviewController

时间:2012-01-13 13:24:54

标签: objective-c ios cocoa-touch uibarbuttonitem qlpreviewcontroller

我已经阅读了这个问题QLPreviewController remove or add UIBarButtonItems,但这不是我想要的。我想在导航栏中保留“打印”按钮,但还会在导航栏中添加新的“删除文档”按钮。

我试过了:

QLPreviewController *previewer = [[[QLPreviewController alloc] init] autorelease];
[previewer setDataSource:self];

UIBarButtonItem *saveButton = [[UIBarButtonItem alloc]initWithTitle:@"Salva Documento" style:UIBarButtonItemStyleBordered target:self action:@selector(saveFileToDocuments)];
NSArray *buttons = [NSArray arrayWithObjects:[[previewer navigationItem]rightBarButtonItem],saveButton, nil];
[[previewer navigationItem]setRightBarButtonItems:buttons];

但它不起作用。

2 个答案:

答案 0 :(得分:0)

因为你说“4.x会很好”,那就是你的问题。

UINavigationItem [setRightBarButtonItems: animated:]的文档(documentatin为您链接)表示此功能仅适用于iOS 5.0及更高版本。

它将在iOS 4.0上运行。

此外,您应该为animated:来电添加setRightBarButtonItems:参数。

答案 1 :(得分:0)

    UIBarButtonItem *rbb;
-(void)addRightButton{
    if (!rbb) {
        UIButton *orderButton = [UIButton buttonWithType:UIButtonTypeCustom];
        orderButton.frame = CGRectZero;
        rbb = [[UIBarButtonItem alloc] initWithCustomView:orderButton];
    }

    self.navigationItem.rightBarButtonItem = rbb;
}

- (void)viewDidLoad{
    [super viewDidLoad];
    [self performSelector:@selector(addRightButton) withObject:nil afterDelay:0.2];
}
-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    [self addRightButton];

}