(Swift) Панель навигации скрыта в viewController - PullRequest
0 голосов
/ 23 марта 2020

Я хочу представить SecondV C из FirstV C и заставить SecondV C иметь rightBarButtonItem с именем Close, который вызывает функцию @objc, которая отклоняет SecondV C.
Кроме того, я хочу изменить заголовок secondV C с firstV C:
Вот так я представляю SecondV C из FirstV C:

let secondVC = AdviceDetailsViewController()
secondVC.modalPresentationStyle = .fullScreen
secondVC.title = "Example" //Value of type 'UINavigationController' has no member 'myTitle'
self.present(secondVC, animated: true)

Код для навигационной панели в секундах V C:

public var myTitle: String = ""
override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .gray
    self.title = myTitle
    self.navigationController?.navigationBar.barTintColor = UIColor.orange
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Close", style: .plain, target: self, action: #selector(closeDetails))
}

@objc func closeDetails() {
    self.dismiss(animated: true, completion: nil)
}

Во второй секунде C не отображается панель навигации, единственная видимая вещь - серый фоновый цвет.
Что я должен изменить? Я делаю все программно в этом приложении.

Ответы [ 2 ]

1 голос
/ 23 марта 2020

Что касается проблемы с названием, Значение типа 'UINavigationController' не имеет члена 'myTitle' Да, это правда, потому что мы определяем переменную myTitle для SecondV C, поэтому мы присваиваем myTitle следующим образом

let vc = SecondViewController()
vc.myTitle = "My Title"
let nc = UINavigationController(rootViewController: vc)
nc.modalPresentationStyle = . fullScreen
self.present(nc, animated: true)
1 голос
/ 23 марта 2020

Используйте этот метод для отображения второго V C

let nc = UINavigationController(rootViewController: AdviceDetailsViewController())
nc.modalPresentationStyle = . fullScreen
self.present(nc, animated: true)

Result

...