Заголовок навигации не отображается в представлении с контроллером представления вкладок, но навигация "назад" работает
Я относительно новичок в разработке для iOS Objective-C и столкнулся с проблемой, решение которой не могу найти.
у меня есть Table View Controller
, с двумя прототипами клеток на нем, которые хорошо заселяются. это Table View Controller
один из трех Tab Views
и View
который отправляет Tab Views
имеет Navigation Controller
, Это означает, что взгляды внутри Tab Views
также есть Navigation
бар. Полоса работает нормально, с точки зрения кнопки "назад", работающей как положено, и полоса находится в положении. Однако (по крайней мере, в представлении списка) Navigation Bar
не полностью распознан - его заголовок не отображается, и ячейки таблицы начинаются непосредственно под строкой состояния, а не под панелью навигации.
Вот пара скриншотов, показывающих проблему:что появляется в Xcode (что я ожидаю, что произойдет)И затем на устройстве, это то, что на самом деле появляется - кнопка "Назад" на месте и работает нормально, но без поля заголовка, и ячейки таблицы начинаются слишком высоко.
Я пытался добавить 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, если у вас возникают проблемы с отображением при переключении вкладок.
У меня была та же проблема, но я создал эту проблему, когда мое действие кнопок связывалось с самой таблицей, а не с контроллером таблицы. Я удалил модальное действие и создал новое действие для контроллера таблицы, и это устранило проблему.
Попробуйте щелкнуть панель навигации на раскадровке или перо.
Затем добавьте свой титул в собственность.