3

これが現在のセットアップです。

私は5つのボタンを備えたnavigationControllerのツールバーを持っており、それらをタップするとツールバーが2秒間非表示になり、ツールバーが再び表示されます(5番目のボタンを除く-ボタン付きのアクションシートが表示されます(アクションとキャンセル))。

1 ~ 4 のボタンをタップして a を実行し、self.navigationController.toolbarHidden = YES;ちょうど2 秒後に を設定するself.navigationController.toolbarHidden = NO; と、ツールバーが元に戻り、すべて問題ありません。

5番目のボタンをタップすると、アクションシートが表示されます。

  1. CANCELアクションシートをタップすると=>アクションシートが閉じられた=>ツールバーは問題ありません。
  2. ACTION ボタンをタップするself.navigationController.toolbarHidden = YES;と、2 秒後に and を実行します...self.navigationController.toolbarHidden = NO; しかし今は... ツールバーのボタンが消えています。

さらに調査...

toolbarButtons のアルファ値が 0 に設定されているように見えます。

アクションシートの操作後にツールバー項目のアルファが値 = 0 に設定される理由がわかりません。

誰でもこれの根本的な原因を教えてもらえますか?

4

5 に答える 5

4

ツールバー項目配列を nil に設定してみましたか? 私はこれと同じ問題を抱えていましたが、ツールバーの項目を設定するときにチェックを入れるとうまくいくように見えました:

if ([self.navigationController.toolbar.items count] > 0) {
   [self.navigationController.toolbar setItems:nil];
}

[self.navigationController.toolbar setItems:toolbarItems]; //toolbarItems is your array of UIBarButtonItems.
于 2013-01-09T22:10:20.430 に答える
1

別の方法で問題を解決することができました。アクション シートが表示されたときにツールバーを非表示にし、その後、buttonAction()基本的にツールバーを再び表示します。

これにより、toolbarItems が消える問題が解決されます。

しかし、toolbarItems が消えて alpha=0 に設定された理由は、私にはまだ謎です。誰か理由がわかったら教えてください :)

于 2013-01-10T21:04:25.963 に答える
0

同じ問題が発生し、サンプルの 1 つで再現しました。loadView / viewDidLoad でツールバー項目を手動で設定し、後で ActionSheet を呼び出すと、iOS6 のバグのようです。

以下のコードは回避策です -

-(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    NSArray* items = self.toolbarItems;
    [self setToolbarItems:nil];
    [self setToolbarItems:items animated:NO];
}
于 2013-04-23T19:35:50.723 に答える