Как подключить несколько контроллеров представления к контроллеру навигации - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть следующие раскадровки: Storyboards

"Домой" является контроллером представления по умолчанию. Когда вы нажимаете кнопку в левом верхнем углу с тремя строками, контроллер представления меню выдвигается (это похоже на боковое меню). Как видите, в меню есть четыре ячейки таблицы, которые представляют пункты меню. Когда ячейка нажата, у меня есть соответствующая функция, которая вызывается. Я хочу, чтобы контроллер представления в крайнем правом углу был представлен при нажатии на ячейку.

Вот проблема: Я хочу, чтобы крайний правый контроллер вида унаследовал свойства контроллера домашнего вида, чтобы заголовок и кнопка навигации все еще были там. Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Вот решение:

Убедитесь, что контроллер навигации и правого обзора подключен (Ctrl + Drag в Интерфейсном Разработчике)

Вызовите код, указанный в ответе @bebzerk:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let transition = storyboard.instantiateViewController(withIdentifier: "RightViewController") as! RightViewController
navigationController?.pushViewController(transition, animated: true)

Теперь go вернитесь в Интерфейсный конструктор и добавьте UINavigationItem и UIBarButtonItem в контроллер представления. Установите изображение кнопки на три строки и задайте в заголовке элемента навигации имя, которое вы хотите отобразить вверху.

В файле ViewController Swift для правого контроллера представления Ctrl + перетащите панель Нажмите кнопку и создайте функцию IBAction. Это будет вызвано, когда нажата кнопка меню (в крайнем правом углу контроллера). Для меня этот класс расширяется от HomeViewController, поэтому в функции просто вызывается метод super. Это должно выглядеть следующим образом:

@IBAction override func menuTapped(_ sender: UIBarButtonItem) {
        super.menuTapped(UIBarButtonItem())
    }

Это должно достичь желаемой функции.

0 голосов
/ 25 апреля 2020

Вы пробовали таким образом?

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let transition = storyboard.instantiateViewController(withIdentifier: "RightViewController") as! RightViewController
navigationController?.pushViewController(transition, animated: true)

Он должен открыть ваш контроллер дальнего правого обзора и заставить его наследовать ваш домашний контроллер, как с кнопкой возврата

Проверьте это и скажите мне, если это хорошо для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...