возможно, это поздний ответ, но я все равно опубликую свое решение. Надеюсь, это поможет кому-то.
Я встроил NSTabViewController в ContainerView. Затем, чтобы не видеть вкладки сверху, я сделал так:
перейдите к NSTabViewController в раскадровке
в инспекторе атрибутов изменить стиль на Unspecified
затем нажмите TabView в контроллере представления панели вкладок и установите стиль «без таблиц»:
После этого вам необходимо:
- сохранить ссылку tabViewController на mainViewController, чтобы выбрать вкладки из кода
- добавьте кнопку в mainViewController (там, где находится ваш контейнер), с помощью которой вы будете менять вкладки в tabViewController.
Вы делаете это, сохраняя ссылку на tabViewController при переопределении функции подготовки к переходу. Вот мой код:
сначала добавьте свойство в mainViewController
private weak var tabViewController: NSTabViewController?
затем переопределите эту функцию и сохраните ссылку на tabViewController:
override func prepare(for segue: NSStoryboardSegue, sender: Any?) {
guard let tabViewController = segue.destinationController
as? NSTabViewController else { return }
**self.tabViewController = tabViewController as? NSTabViewController**
}
После этого у вас будет ссылка на все настройки tabViewController. Следующее (последнее), что вам нужно сделать, это сделать действие для кнопки, чтобы перейти к первому (или второму) контроллеру представления, например:
@IBAction func changeToSecondTab(_ sender: Any) {
self.tabViewController?.selectedTabViewItemIndex = 0 // or 1 for second VC
}
Всего наилучшего!
person
Damir
schedule
20.12.2017