Interface Builderで、ストーリーボードの一部としてビューを作成しました。これは、以前は1つの異なるコンテキストでのみ表示されていました(UITabBarControllerのビューとして)。
ここで、このビューをUINavigationControllerビューの一部として再利用したいと思いますが、これは通常は正常に機能します。唯一の問題は、IBでボタンをleftBarButtonItemに配置したことです。そのため、同じView Controllerをナビゲーションコントローラーのスタックにプッシュしても、backBarButtonItemは自動的に配置されなくなります。
その状況に対処する方法に関する標準的なアプローチはありますか?ビューコントローラがUITabBarControllerまたはUINavigationControllerの一部であるかどうかに応じて、ボタンを自分で削除する必要がありますか?ボタンをIBのままにしておきたいのですが。したがって、viewDidDisappearでleftBarButtonItemをnilに設定すると、たとえば、一種のヘルプになります。これはbackBarButtonItemを正しく表示しますが、ユーザーがその画面に戻ったときに、leftBarButtonItemを手動で再度設定する必要があります。