关于iphone:在呈现UIActivityViewController时隐藏的UIToolbar的UIBarButtonItems

UIBarButtonItems of a UIToolbar hiding when presenting UIActivityViewController

hiding

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;
}