Как сделать настраиваемый заголовок панели навигации? Swift 4 - PullRequest
0 голосов
/ 04 мая 2018

У меня есть текстовое поле в firstViewController, и я хочу получить следующее: как только пользователь введет текст и перейдет к SecondViewController, он станет заголовком панели навигации.

Я новичок в программировании, и я надеялся, что кто-нибудь сможет мне помочь.

First View controller

Second View controller

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Можете ли вы попробовать способ @ChanWarde, но представить контроллер представления вместо использования сегментов?

let second = storyboard?.instantiateViewController(withIdentifier: 
"SecondViewController") as!  SecondViewController
second.title = textTitle.text!
present(second, animated: true, completion: nil)

Или попробуйте:

let second = storyboard?.instantiateViewController(withIdentifier: 
"SecondViewController") as!  SecondViewController
second.title = textTitle.text!

DispatchQueue.main.async(execute: {
UIApplication.shared.keyWindow?.rootViewController = second()
    self.dismiss(animated: true, completion: nil)
})
0 голосов
/ 04 мая 2018

Первый способ навигации при создании объекта контроллера представления и навигации по контроллеру навигации

let second = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as!  SecondViewController
second.title = textTitle.text!
navigationController?.pushViewController(second, animated: true)

Второй способ навигации по раскадровке

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard  segue.identifier == "segueIdentifier" else { return }
        let destination = segue.destination as? SecondViewController
        destination?.strTitle = textTitle.text!
}

Во втором представлении контроллер добавить это

var strTitle : String?

override func viewDidLoad() {
    super.viewDidLoad()
    self.title = strTitle ?? "default string"
}
...