Использование initWithCustomView:
звучит как хороший путь. Вы можете создать свой собственный вид любым удобным вам способом: с помощью NIB, нарисовав его, даже используя изображения. Он также может иметь свои собственные подпредставления. Это может быть любой объект, который наследуется от UIView. (Таким образом, если вы хотите, вы можете даже сделать его активным, используя UIButton, пользовательский UIControl или пользовательский UIView с подключенным распознавателем жестов.)
Вам не нужно переделывать toolbarItems (или, если уж на то пошло, делать что-либо с ним после того, как вы добавили все свои элементы кнопок), если вы просто сохраняете указатель на свой пользовательский вид UIBarButtonItem. Это может быть переменная экземпляра. Затем, чтобы обновить пользовательское представление, вы можете получить к нему доступ, как и к любому другому представлению. Я никогда не пробовал, но я не вижу никаких проблем с этим.
Ты говоришь так, будто понял это. Надеюсь, что это полезно.