При настройке внешнего вида UIButton с использованием прокси-класса UIBarItems, кажется, изначально принимает пользовательские свойства, установленные для UIButton.
Начиная с проекта Master / Detail по умолчанию с использованием Core Data. Настройте внешний вид UIButton в AppDelegate и запустите приложение. Нажмите кнопку «Редактировать», затем кнопку «Готово» на панели навигации для MasterViewController и наблюдайте, как исчезают настройки.
Пользовательский код появления в [AppDelegate application: didFinishLaunchingWithOptions]:
UIImage *customBackground = [[UIImage imageNamed:@"yourcustomimage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5,5,5,5)];
[[UIButton appearance] setBackgroundImage:customBackground forState:UIControlStateNormal];

Все UIBarButtonItems инициализируются с пользовательским фоном

Когда кнопка «Правка» заменяется кнопкой «Готово», у нее правильно не будет настроенного фона.
Аналогичный вопрос спрашивает, как настроить кнопку Готово . Меня беспокоит, почему это вообще происходит с объектами UIBarItem, которые не наследуются от UIButton, и хотел бы знать, как это исправить.
Я подозреваю, что наследование прокси и поддерживаемые свойства, но я не знаю, как исправить это. Есть предложения?