【问题标题】:How to add UIBarButtonItem to QLPreviewController如何将 UIBarButtonItem 添加到 QLPreviewController
【发布时间】:2012-01-13 13:24:53
【问题描述】:

我已经阅读了这个问题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];

但是没有用。

【问题讨论】:

  • 您是否正在构建以支持 iOS 5 和更新版本或 iOS 4.X 和/或 iOS 3.X?
  • 这是一款只适用于 iPad 的应用,所以 5 和 4.x 都可以...

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


【解决方案1】:

因为你说“4.x 会很好”,所以你的问题。

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

它将在 iOS 4.0 上运行。

此外,您应该在 setRightBarButtonItems: 调用中添加一个 animated: 参数。

【讨论】:

  • 使用调试器并单步执行每一行代码,查看是否引用了nil 对象。例如,我看到多个对[previewer navigationItem] 的引用。通过UINavigationItem * previewerNavigationItem = [previewer navigationItem]; 将其分配给一个变量,然后查看它是否为零。另外,检查 [previewer navigationItem]rightBarButtonItem] 是否也返回 nil。
  • previewerNavigationItem 不是 nil,但其中几乎所有内容都是 0x0(如 title、left 和 rightBarButtonItem)......当控制器被推入堆栈时是否有可能加载这些对象?如果是这样,我应该如何将该按钮添加到导航栏?
  • 是的......你在正确的轨道上。 首先将控制器推送到堆栈上,然后进行自定义。
【解决方案2】:
    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];

}

【讨论】:

    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    相关资源
    最近更新 更多