Заголовок навигации не отображается в представлении с контроллером представления вкладок, но навигация "назад" работает

Я относительно новичок в разработке для iOS Objective-C и столкнулся с проблемой, решение которой не могу найти.

у меня есть Table View Controller, с двумя прототипами клеток на нем, которые хорошо заселяются. это Table View Controller один из трех Tab Viewsи View который отправляет Tab Views имеет Navigation Controller, Это означает, что взгляды внутри Tab Views также есть Navigation бар. Полоса работает нормально, с точки зрения кнопки "назад", работающей как положено, и полоса находится в положении. Однако (по крайней мере, в представлении списка) Navigation Bar не полностью распознан - его заголовок не отображается, и ячейки таблицы начинаются непосредственно под строкой состояния, а не под панелью навигации.

Вот пара скриншотов, показывающих проблему:что появляется в Xcode (что я ожидаю, что произойдетчто появляется в Xcode (что я ожидаю, что произойдет)что на самом деле появляется на моем тестовом устройстве (iPhone 4, iOS 7.0.4И затем на устройстве, это то, что на самом деле появляется - кнопка "Назад" на месте и работает нормально, но без поля заголовка, и ячейки таблицы начинаются слишком высоко.

Я пытался добавить Navigation Barи Navigation Itemsи при добавлении Navigation Item позволяет мне добавить заголовок в Xcode, он все еще не появляется на устройстве в тестировании. Я также пытался добавить еще Navigation Controller как раз перед этим представлением, но это также не решило проблему, и это вызвало проблемы с навигацией далее в иерархии.

Надеюсь, я был достаточно ясен, пожалуйста, скажите, если мне нужно опубликовать больше информации - я относительно новичок в Xcode и поэтому не уверен, что именно применимо, а что нет. Спасибо!

4 ответа

Решение

Пожалуйста, попробуйте этот код, он может исправить положение вашей таблицы

// Since in iOS7 the nav bar is translucent by default, so the table view starts at (0,0)
// you can either disable the translucent, which i don't recommend unless you really want to
// or just add 64 pixel on the top of your table view
[self.YOURTABLEVIEW setContentInset:UIEdgeInsetsMake(64, 0, 0, 0)];

и для названия, пожалуйста, попробуйте это

self.tabBarController.navigationItem.title =@"YOUT TITLE NAME";

Надеюсь, это поможет..

Принимая вашу иерархию как

NavigationController -> ViewController  -> TabBarController -> ViewController1
                                                            -> ViewController2
                                                            -> ViewController3

Если вы хотите скрыть элемент навигации в viewcontroller1, добавьте следующую строку

 self.navigationController.navigationBarHidden = YES;

Если вы хотите показать заголовок в viewcontroller2, добавьте следующую строку в

self.navigationController.navigationBarHidden = NO; //add this if you hide navItem viewcontroller1
[self.parentViewController.navigationItem setTitle:@"Title"];

Если вы хотите скрыть кнопку и показать заголовок в viewcontroller3, добавьте следующую строку

 self.navigationController.navigationBarHidden = NO;
[self.parentViewController.navigationItem setTitle:@"Contacts"];

self.parentViewController.navigationItem.hidesBackButton=YES; 

Добавьте эти строки в метод viewdidAppear вместо ViewdidLoad, если у вас возникают проблемы с отображением при переключении вкладок.

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

Попробуйте щелкнуть панель навигации на раскадровке или перо.

введите описание изображения здесь

Затем добавьте свой титул в собственность.

введите описание изображения здесь

Другие вопросы по тегам