При настройке внешнего вида UIButton с помощью прокси класса UIBarItems, похоже, первоначально принимает пользовательские свойства, установленные для UIButton.
Начиная с проекта Master/Detail по умолчанию с использованием Core Data. Настройте внешний вид UIButton в AppDelegate и запустите приложение. Нажмите кнопку Edit, затем кнопку Done на панели навигации для MasterViewController и посмотрите, как исчезает настройка.
Код пользовательского внешнего вида в [AppDelegate application:didFinishLaunchingWithOptions]:
UIImage *customBackground = [[UIImage imageNamed:@"yourcustomimage.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5,5,5,5)];
[[UIButton appearance] setBackgroundImage:customBackground forState:UIControlStateNormal];
Все UIBarButtonItems инициализируются с пользовательским фоном
Когда кнопка Edit заменяется кнопкой Done, она корректно не имеет настроенного фона.
В аналогичном вопросе спрашивается, как настроить кнопку Done. Меня беспокоит, почему это вообще происходит с объектами UIBarItem, которые не наследуются от UIButton, и я хотел бы знать, как это исправить.
Я подозреваю прокси-наследование и поддерживаемые свойства, но не знаю, как это исправить. Есть предложения?