1

hiding buttons這看起來像一個bug,但也許有人可以想到一個解決方法?UIBoolButtonItems UIToolbar隱藏時呈現UIActivityViewController

基本上如果你有一個自定義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

你需要把你的Button作爲一個全局,當你展現UIActivityViewController時,你只需隱藏button.hidden = True,然後在解除時然後button.hidden = False –

+0

我不想隱藏按鈕,它會自動隱藏他們作爲顯示UIActivityViewController的副作用。我不希望他們藏起來。 – dizy

+0

試試這個鏈接可能會幫助您... 1. http://stackoverflow.com/questions/2971483/hide-uitoolbar-uibarbuttonitems 2. http://stackoverflow.com/questions/276861/how-can-i -dynamic-hide-a-button-a-a-view-3. https://developer.apple.com/library/ios/#documentation/uikit/reference/UIToolbar_Class/Reference/Reference.html –

回答

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

我知道這是一箇舊的答案,但我只是想感謝你這個簡單的小黑客。多奇怪的問題.... – JiuJitsuCoder

0

知道這是很老線程,但那些誰看這個網頁的解決方案,在這裏你去:

隨着iOS7,您可以用這種方式來顯示/隱藏工具欄按鈕:

if(// your code Condition) 

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