1

ボタンを隠すこれは私にはバグのように見えますが、誰かが回避策を考えることができるかもしれませんか?

基本的に、カスタムがある場合UIToolbar、そのボタンアイテムは、を提示すると自動的に非表示になりUIActivityViewController、それを閉じると再び表示されます。これはiPhoneの場合のみです。UIActivityViewControllerは画面全体を非表示にしないため、ボタンが淡色表示された画面の後ろに表示されなくなるのは奇妙に見えます。

複製するには、単一のViewプロジェクトを開始し、ViewControllerで次のコードを使用するだけです。

- (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];
}
4

2 に答える 2

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;
}
于 2012-10-16T00:30:06.203 に答える
0

それはかなり古いスレッドであることを知っていますが、このページで解決策を探している人は、ここに行きます:

iOS7では、このアプローチを使用してツールバーボタンを表示/非表示にできます。

if(// your code Condition) 

{self.toolbarBtn1.enabled = YES; self.toolbarBtn1.tintColor = nil; } else {self.toolbarBtn1.enabled = NO; self.toolbarBtn1.tintColor = [UIColor clearColor]; }

于 2016-04-29T16:40:47.630 に答える