2016-12-29 7 views
0

Я думал, что это будет простое дело, но у меня есть некоторые проблемы с тем, что даже заголовок заголовок. У меня есть TabBarController, который управляет 2 ViewControllers. Представлен tabBarController, отображающий серию show из таблицыView, встроенной в контроллер навигации. Я читал разные точки зрения относительно того, правильно это или нет. Кажется, это имеет смысл в представлении пользовательского интерфейса для меня. Человек нажимает на ячейку таблицы и получает более подробную информацию о ячейке таблицы в представлении контроллера TabBar.установка заголовка ViewController внутри UITabBarController

Когда я тестирую приложение, я вообще не вижу никакого названия, хотя я добавил его в раскадровку. Я также добавил навигационную кнопку в правой части панели навигации, которая тоже не отображается. См. Прикрепленное изображение.

Чтобы задать заголовок, я пытался сделать что-то вроде этого

self.title = "Some Title Name" 

Но опять моего титула, ни моя кнопка даже появляется при тестировании приложения. Когда я использую строку кода выше, она изменяет название вкладки, на которую вы вставляете, а не заголовок контроллера вида.

Это может быть связано с тем, что tabBar является частью навигационного контроллера, и поэтому контроллер является тем, который создает и заполняет строку заголовка, например, кнопку назад, которую я вижу. Если это так, могу ли я добавить заголовок и кнопку в правой части панели навигации? enter image description here enter image description here

enter image description here

+0

navigationItem.title = "Some Title Name" – bubuxu

+0

Это изменяет название вкладки (кнопка внизу экрана) – icekomo

ответ

1

Когда вы self.title = "Some title", вы настраиваете название ViewController, который работает хорошо, как вы можете, потому что вкладка изменения заголовка. Но это отличается от названия навигационной панели.

По умолчанию в ViewController вашей панели вкладок нет панели навигации, вам необходимо либо встроить контроллер вида в контроллер навигации, либо перетащить панель навигации из элементов раскадровки.

Если панель навигации поступает от встраивания контроллера View в контроллер навигации, вы можете сделать self.navigationItem.title = "Some title", и это сработает.

Но если вы получили панель навигации, перетащив элемент пользовательского интерфейса на контроллер вида. В этом случае вам придется подключить эту навигационную панель как IBOutlet и изменить ее.

@IBOutlet weak var navBar: UINavigationBar! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.navBar.topItem?.title = "Some Title" 
} 

Что касается панели навигации, которая теперь отображается, вы пытались добавить к ней ограничения?

+0

Когда я добавляю навигационную панель, она выравнивается под навигационной панелью ионный бар, контроллер навигации добавляет из предыдущего представления.На этой панели навигации есть кнопка «Назад», я просто хочу знать, могу ли я добавить заголовок и кнопку в правой части панели навигации. – icekomo

+0

@icekomo да можно. Чтобы добавить кнопку, просто перетащите элемент кнопки на панели навигации в раскадровке. –

+0

нет видимой панели навигации в раскадровке. Внизу есть UITabBarItem, но ничего наверху. Я считаю, что этот навигатор динамически добавляется через Xcode из-за встроенной навигации. Когда я выбираю ячейку таблицы, и она переходит к этому контроллеру просмотра панели табуляции, когда создается панель навигации. Я добавил несколько изображений, чтобы показать вам, как выглядит раскадровка и схема моего документа. – icekomo

0

Вот что я использовал, чтобы решить эти проблемы:

Чтобы получить титул, чтобы показать:

tabBarController?.title = "Your Title" tabBarController?.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Right Button Title", style: UIBarButtonItemStyle.Plain, target: self, action: "rightButtonFunction") 

Чтобы использовать значок на правой стороне панели навигации

let button = UIButton.init(type: .custom) button.setImage(UIImage.init(named: "pencilIcon.pdf"), for: UIControlState.normal) button.addTarget(self, action:#selector(DetailsViewController.callMethod), for: UIControlEvents.touchUpInside) button.frame = CGRect.init(x: 0, y: 0, width: 30, height: 30) //CGRectMake(0, 0, 30, 30) let barButton = UIBarButtonItem.init(customView: button) tabBarController?.navigationItem.rightBarButtonItem = barButton 

 Смежные вопросы

  • Нет связанных вопросов^_^