Heute habe ich gelernt, dass die Cocoa-Touch Klasse UINavigationController eine eingebaute Toolbar hat.
Ich stand vor folgendem Problem: Ich wollte die Navigation der App durch ein UiNavigationController bewerkstelligen und dabei ein Element am unteren Bildschirmrand haben, dass weitere Navigationselemente zur Verfügung stellt. Ein UITabBarController kam nicht in Frage, da ich mehr Kontrolle über das Aussehen brauche.
Die nächste Idee war, UITabBarController zu subclassen und das Aussehen selbst zu definieren. Das wäre aber zu viel Kontrolle gewesen. Außerdem hätte ich mich dann auch mit allerlei Seiteneffekten herumschlagen müssen.
Meine nächste Idee wäre gewesen ein UIToolbar einzubinden. Allerdings hätte ich das in jedem View Controller einbinden müssen.
Schlussendlich brachte mich eine Folge der Stanford iTunes U Vorlesung auf die richtige Lösung:
Wenn man dem UINavigationController die Nachricht setToolbarHidden:animated:
schickt kann man die Toolbar des UINavigationControllers einblenden. In jedem View Controller der dann auf den Navigation Stack geschoben wird kann man die Toolbar Elemente mit setToolbarItems:
definieren.