Как установить заголовок элемента навигации после открытия другого контроллера вида с использованием модально - Swift - PullRequest
0 голосов
/ 15 октября 2019

У меня есть два контроллера представления в моем приложении. Контроллер Root View имеет несколько компонентов, одним из которых является кнопка. Эта кнопка позволяет открыть другой контроллер вида с помощью функции «присутствует». Второй контроллер представления (SelectTimeViewController), который открывается при нажатии кнопки, был успешно открыт. Я пытаюсь установить заголовок и элементы навигации, но не вижу их.

Я не использовал раскадровку, поэтому контроллер корневого представления настраивается из AppDelegate.

let viewController = ViewController()
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = UINavigationController(rootViewController: viewController)
window?.makeKeyAndVisible()

При нажатии кнопки,Вызывается функция «openVC».

@IBAction func openVC(_ sender: Any) {
    self.navigationController?.present(SelectTimeViewController(), animated: true, completion: nil)
}

Я пытаюсь установить title и rightBarButtonItem в функции viewDidLoad SelectTimeViewController, но я не вижу их обоих.

override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "close"), style: .plain, target: self, action: #selector(closeIt))
        self.navigationItem.title = "Select Time"
}

В дополнение к этому, Я могу видеть как заголовок, так и правую кнопку панели, когда меняю функцию «openVC», как показано ниже.

@IBAction func openVC(_ sender: Any) {
    self.navigationController?.pushViewController(vc, animated: true)
}

1 Ответ

0 голосов
/ 15 октября 2019

Вы должны нажать SelectTimeViewController вместо существующего

Или, если вы действительно хотите представить его, вам следует представить другой UINavigationController, у которого есть rootViewController как SelectTimeViewController ()

...