Варианты:
- кастомный navigationController, который сетапит айтемы при пуше
- кастомный navigationBar который делает примерно тоже самое
- кастомный viewController, который оверрайдит navigationItem и возвращает кастомный.
В каждом варианте есть свои плюсы и минусы.
Но если эти кнопки относятся не к текущему контроллеру, а к приложению в целом, то более логично оверрайднуть tabBarController, у которого изменить размеры childView и добавить свой navigationBar.