面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

NavigationItemのLeftBarButtonItemsにitemを入れるとBackボタンが表示されなくなるやつの対処

経緯

割と当たり前だったりすることでも、知らないことも多々あるので、今回そんな例として今更知った内容のメモとして記載

内容

UINavigationControllerから pushViewController(UIViewController, animated: Bool) で次のViewControllerに遷移するのは珍しくない。

しかし、遷移先のViewControllerのUINavigationItemのLeftBarButtonItemsにItemが入っていると、NavigationBarにBackButtonが表示されず、画面を戻ることができない事態に遭遇する。

その解消方法をメモ程度のつもりで記載

本来であれば、このようにBackButtonが表示される。

f:id:aryzae:20180123023821p:plain

f:id:aryzae:20180123023841p:plain


しかし、下記のような作りをしていると…

f:id:aryzae:20180123023828p:plain

VC2に遷移した時BackButtonが出ない。

f:id:aryzae:20180123023816p:plain

対処方法

対処は簡単。 StoryboardでUINavigationItemの Left Items Supplement にチェックをつける。

f:id:aryzae:20180123023834p:plain

または、コードで leftItemsSupplementBackButtontrue にする。

self.navigationItem.leftItemsSupplementBackButton = true

そうすることで、LeftBarButtonItemsとBackButtonが共存するようになる。

f:id:aryzae:20180123023812p:plain