Исчезающие UIBarButtonItems в iOS 4 - PullRequest
       18

Исчезающие UIBarButtonItems в iOS 4

1 голос
/ 22 февраля 2012

Я занимаюсь разработкой на устройстве iOS 5, и оно работает нормально.Сейчас я тестирую его с разными версиями симулятора iOS, а в 4.0 я получаю странное поведение с моими пользовательскими UIBarButtonItems.На главном экране приложения обе кнопки панели отображаются в течение всего срока службы приложения.Эти две кнопки вызывают модальные контроллеры вида, каждая с кнопкой «Закрыть».Это описание объекта кнопки «Закрыть» на одном из контроллеров модального представления (я установил точку останова в методе «viewWillAppear»):

(gdb) po [[[self navigationItem] rightBarButtonItem] customView]
<UIButton: 0x72766e0; frame = (264 6; 51 31); opaque = NO; layer = <CALayer: 0x7276d70>>

Они оба появляются, когда каждый контроллер модального представленияоткрыт.Но тогда один из модальных контроллеров представления имеет кнопку, которая толкает другой контроллер представления сверху, и базовый класс контроллера представления автоматически делает пользовательскую кнопку возврата и помещает ее в leftBarButtonItem представления.Тем не менее, это не обнаруживается.Вот описание объекта кнопки, которая не отображается (опять же, в 'viewWillAppear'):

(gdb) po [[[self navigationItem] leftBarButtonItem] customView]
<UIButton: 0x766be00; frame = (0 0; 43 31); opaque = NO; layer = <CALayer: 0x766be90>>

... что не похоже на то, что что-то не так.Затем я нажимаю там, где должна быть кнопка «Назад», и контроллер вида высовывается, открывая первый модальный контроллер вида, но без кнопки «Закрыть».Опять же, я сломал viewWillAppear, и вот что я получил:

(gdb) po [[[self navigationItem] rightBarButtonItem] customView]
<UIButton: 0x72766e0; frame = (264 6; 51 31); alpha = 0; opaque = NO; layer = <CALayer: 0x7276d70>>

Это странно, поскольку я нигде не устанавливаю альфа-значение UIBarButtonItem в своем собственном коде.Кроме того, он отлично работает в iOS 5. Для реализации пользовательских UIBarButtonItems используются некоторые статические методы, которые я поместил в категорию под названием UIBarButtonItem + Utils.h, которая возвращает UIBarButtonItems, инициализированные с пользовательским UIButton, в качестве пользовательского представления.Если вам нужно, чтобы я опубликовал код для этого метода, я могу, но суть в том, что он никогда не меняет альфа-значение кнопки.Кто-нибудь еще испытывал что-либо подобное?

...