我们有一个自定义的 QLPreviewController 实现,因此我们可以控制呈现给用户的按钮及其操作。我viewWillAppear
在自定义类的方法中添加了以下代码:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(openWithPressed:)];
UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissPressed:)];
[self.navigationItem setRightBarButtonItem:rightBarButtonItem];
[self.navigationItem setLeftBarButtonItem:leftBarButtonItem];
[rightBarButtonItem release];
[leftBarButtonItem release];
}
预览器确实与我们的自定义按钮一起出现,并且它们按预期工作。
当用户单击“主页”按钮时,就会出现我们的问题。它接缝该UIApplication.doEvents
方法调用navigationItem
设置按钮方法,并将它们重置为原始值(使用原始处理程序)。
我怎样才能防止这种情况发生,或者自己处理这些事件,并用我自己的自定义按钮覆盖它们?