这对我来说似乎是一个错误,但也许有人可以想到一个解决方法?
基本上,如果您有自定义UIToolbar
,则当您展示UIActivityViewController
时,其按钮项会自动隐藏,并在您关闭时重新显示。这只是iPhone上的情况。由于UIActivityViewController不会隐藏整个屏幕,因此看起来很奇怪按钮会在灰暗的屏幕后面消失。
要复制,只需启动单个视图项目并在视图控制器上使用以下代码:
- (void)viewDidLoad {
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 40)];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(didTapAction)];
toolbar.items = [NSArray arrayWithObject:button];
[self.view addSubview:toolbar];
}
- (void)didTapAction {
NSArray *items = [NSArray arrayWithObjects:@"Text", nil];
UIActivityViewController *sharing = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[self presentViewController:sharing animated:YES completion:nil];
}
答案 0 :(得分:0)
找到了解决方法。只需在展示之前摆脱所有项目,然后立即添加它们。
- (void)didTapAction {
NSArray *items = [NSArray arrayWithObjects:@"Text", nil];
UIActivityViewController *sharing = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
NSArray *barItems = toolbar.items;
toolbar.items = nil;
[self.navigationController presentViewController:sharing animated:YES completion:nil];
toolbar.items = barItems;
}
答案 1 :(得分:0)
知道这是一个相当古老的线程,但是那些看这个页面寻求解决方案的人,请你走了:
使用iOS7,您可以使用此方法显示/隐藏工具栏按钮:
if(// your code Condition)
{self.toolbarBtn1.enabled = YES; self.toolbarBtn1.tintColor = nil; } 其他 {self.toolbarBtn1.enabled = NO; self.toolbarBtn1.tintColor = [UIColor clearColor]; }