Вы можете добавить категорию в класс и попробовать переопределить layoutSubviews:
из категории. (Этот метод был предложен для настройки панелей навигации , и он вполне может работать и здесь.)
Вот как бы вы сделали категорию, взято из моего ответа здесь . В вашем случае не забудьте заменить UIView
на UINavigationController
.
Нажмите Ctrl + N или откройте диалоговое окно «Новый файл». Далее выберите «Категория Objective-C» из меню «Какао-тач»:

Нажмите Далее, и вам будет предложено ввести имя класса, к которому вы хотите добавить методы в качестве категории. Это должно выглядеть примерно так:

Затем вы должны получить диалоговое окно сохранения файла. Краткое примечание о конвенции здесь. Соглашение состоит в том, чтобы назвать категорию после исходного класса, знак плюс, а затем описание того, что вы добавляете. Вот как может выглядеть ваш:

Как только вы сохраните свой файл, вам нужно получить что-то вроде этого:

Edit:
Если вы хотите пойти дальше и сделать это без категории, то лучше всего создать подкласс UIView, а затем подкласс этого класса, где бы вы ни хотели использовать свое поведение. Другое преимущество над категорией заключается в том, что ваш метод будет работать только в том случае, если вы явно используете пользовательский класс. В категориях метод добавляется везде.
Удачи!