iOS UINavigationBar ボタンがセグエバック後に消えたままになる 質問する

iOS UINavigationBar ボタンがセグエバック後に消えたままになる 質問する

私のアプリには複数のビュー コントローラーがあり、そのほとんどには右側UIBarButtonItemに直接「表示」セグエ アクションがアタッチされています。

別のビューに切り替えて'< Back'ボタンを押すと、元のボタン項目はフェードアウトしたままになりますが、それ以外はまだ使用できます。

これは iOS 11.2 でのみ発生するようです。

これを実行する設定は見当たりません。また、これが発生するケースの少なくとも 1 つでは、特定の segue の解除やviewDidAppear処理は行われません。いくつかコードを投稿しますが、私の知る限り、すべてデフォルトの動作ですUINavigationBar

ベストアンサー1

これは iOS 11.2 のバグであり、UIBarButtonItemナビゲーション後にハイライト表示されたままになり、他のビュー コントローラーがポップした後も通常の状態に戻らないために発生します。

この動作を回避するには、

  1. UIBarButtonItemUIButtonカスタムビューとして使用する

  2. バーボタン項目を無効にしてから再度有効にしますviewWillDisappear(_:)(これによりボタンがすぐに表示されますが、マットの解決策これを避けるには):

    barButtonItem.isEnabled = false
    barButtonItem.isEnabled = true
    

おすすめ記事