Я попробовал то, что вы сделали, с тем же результатом - картинка правильная, но UIBarButtonItem не реагирует при нажатии.Возможно, это ошибка.Моя работа заключается в следующем:
Чтобы сделать это в раскадровке, добавьте кнопку UIB на панель инструментов.Вы должны увидеть, что раскадровка добавляет его, помещая UIButton внутри UIBarButton.Добавьте переход на UIButton.Настройте UIButton в раскадровке.В моем приложении я установил размер 40 х 40. Затем в своем коде настройте UIButton с видом.Вот пример кода для добавления imageView к UIButton:
[sampleImageView setFrame:CGRectMake(0, 0, 40, 40)];
[swapButton addSubview:sampleImageView];
Примечание: раскадровка может быть немного странной при добавлении UIButton на панели инструментов.Кажется, что если вы делаете это на панели инструментов, которая привязана к контроллеру навигации, он не позволит вам добавить его.Я решил эту проблему, добавив фиктивный контроллер представления на раскадровку, добавив к нему панель инструментов, а затем перетащив кнопку UIB на эту панель инструментов.Раскадровка создаст это для вас путем инкапсуляции UIButton в UIButtonBarItem.Затем вы можете скопировать его на нужную панель инструментов в вашем проекте и удалить фиктивный контроллер вида.
Есть и другие способы сделать это, например, создать кнопки в коде и добавить их на панель инструментов.Метод выше минимизирует код.