UIBarButtonItems of a UIToolbar hiding when presenting UIActivityViewController
对我来说这似乎是个错误,但也许有人可以想到解决方法?
基本上,如果您有自定义的
要复制,只需启动一个视图项目并在视图控制器上使用以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 | - (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]; } |
知道这是一个很老的话题,但是那些希望在此页面寻求解决方案的人,这里您可以:
在iOS7中,您可以使用此方法显示/隐藏工具栏按钮:
1 | if(// your code Condition) |
{self.toolbarBtn1.enabled = YES;
self.toolbarBtn1.tintColor = nil; }
别的
{self.toolbarBtn1.enabled =否;
self.toolbarBtn1.tintColor = [UIColor clearColor]; }
找到了解决方法。只需在展示前去除所有物品,然后再添加它们即可。
1 2 3 4 5 6 7 8 | - (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; } |