Вопрос по uinavigationbar, iphone, uinavigationcontroller – UINavigationController не отображает элементы UINavigationBar

3

У меня возникла проблема, когда мой UINavigationBar не 'не хлопаюэлементы, когда UINavigationController открывает контроллер представления.

Я посмотрел на стеки заметил следующее:

Ожидаемое количество назначенных навигационных контроллеров (проверено в приборах)В стеке находится правильное количество контроллеров. (журнала отладки)Элементы навигации нет выскочил. (журнала отладки)

Вот'что я сделал

Я вставил несколько операторов журнала в метод viewDidLoad после вызова super.

NSLog(@"%@", [self navigationController]);
NSLog(@"%@", [[self navigationController] viewControllers]);
NSLog(@"%@", [[self navigationController] navigationBar]);
NSLog(@"%@", [[[self navigationController] navigationBar] items]);

После первоначального просмотра загружен.

2009-10-09 16:42:51.706 Bob[11657:207] 
2009-10-09 16:42:51.720 Bob[11657:207] (
    
)
2009-10-09 16:42:51.742 Bob[11657:207] 
2009-10-09 16:42:51.758 Bob[11657:207] (
    
)

Все выглядит хорошо. Нажмите на второй контроллер.

2009-10-09 16:43:11.800 Bob[11657:207] -[MediaBrowser beginLoading] [Line 261] 
2009-10-09 16:43:12.320 Bob[11657:207] -[MediaBrowser loadingComplete] [Line 269] 
2009-10-09 16:43:12.587 Bob[11657:207] 
2009-10-09 16:43:12.654 Bob[11657:207] (
    ,
    
)
2009-10-09 16:43:12.685 Bob[11657:207] 
2009-10-09 16:43:12.734 Bob[11657:207] (
    ,
    
)

Снова ничего неожиданного здесь. Нажмите третий контроллер.

2009-10-09 16:43:19.934 Bob[11657:207] -[MediaBrowser beginLoading] [Line 261] 
2009-10-09 16:43:20.388 Bob[11657:207] -[MediaBrowser loadingComplete] [Line 269] 
2009-10-09 16:43:20.928 Bob[11657:207] 
2009-10-09 16:43:20.962 Bob[11657:207] (
    ,
    ,
    
)
2009-10-09 16:43:21.003 Bob[11657:207] 
2009-10-09 16:43:21.039 Bob[11657:207] (
    ,
    ,
    
)

Все хорошо. Теперь давайте поп контроллер

2009-10-09 16:43:26.935 Bob[11657:207] 
2009-10-09 16:43:26.945 Bob[11657:207] (
    ,
    
)
2009-10-09 16:43:26.964 Bob[11657:207] 
2009-10-09 16:43:26.977 Bob[11657:207] (
    ,
    ,
    
)

Хамм. Что-то идет не так. Контроллер отключился, но элемент навигации все еще там. Для хихиканья давай давим снова.

009-10-09 16:44:05.878 Bob[11657:207] 
2009-10-09 16:44:05.908 Bob[11657:207] (
    ,
    ,
    
)
2009-10-09 16:44:05.951 Bob[11657:207] 
2009-10-09 16:44:05.996 Bob[11657:207] (
    ,
    ,
    ,
    
)

Стек контроллера выглядит хорошо, стек элементов навигации в большом количестве проблем. Давайте попробуем в последний раз.

2009-10-09 16:44:17.770 Bob[11657:207] 
2009-10-09 16:44:17.776 Bob[11657:207] (
    ,
    
)
2009-10-09 16:44:17.785 Bob[11657:207] 
2009-10-09 16:44:17.793 Bob[11657:207] (
    ,
    ,
    ,
    
)

Таким образом, стек контроллеров в порядке. С другой стороны, у элементов навигации есть некоторые проблемы.

Я в тупике. Я'я уверен, что яЯ делаю что-то странное / странное / неправильное, но, черт возьми, если я это вижу. Единственная манипуляцияЯ собираюсь подготовить (через мои свойства контроллера controlItem) пользовательский rightBarItem.

Если вы получили это далеко, спасибо. Мысли о том, куда я мог бы пойти отсюда, будут оценены.

Ваш Ответ

1   ответ
3

Вот и получается, что я делал что-то глупое.

Я добавил метод pop во внутренней категории в NSMutableArray. Этот метод не былТяпать правильно. UINavigationBar также должен добавить метод pop к NSMutableArray. Мой багги выигрывал и ломал популярность UIBarItem.

Еще одна демонстрация того, почему методы категорий должны быть помещены в пространство с помощью префиксов. Например, вы можете назвать свой метод категории- (id)kevinsapp_pop вместо- (id)pop, Подобная проблема с пространством имен может возникать, когда вы создаете подкласс классов инфраструктуры. Jeremy W. Sherman

Похожие вопросы