Неправильная ссылка на супер на viewDidLoad - PullRequest
0 голосов
/ 29 сентября 2019

Мне нужно создать экземпляр второго контроллера, начиная с первого.Инициализация начинается с кнопки, как показано.

Код и представление добавляются программно.Загрузка начинается с кнопки

В файле раскадровки представления не подключены

Первый контроллер, вызывающий

let vc = storyboard?.instantiateViewController(withIdentifier: "vcID") as? SecondController
self.navigationController?.pushViewController(vc!, animated: true)

Второй контроллер, вызываемый

    override func viewDidLoad() {
        super.viewDidLoad()

        // Barra di navigazione
        self.navigationController?.isNavigationBarHidden = false
        self.navigationItem.largeTitleDisplayMode = .never
        self.navigationItem.title = "Title here"

        let attrs = [
            NSAttributedString.Key.foregroundColor: UIColor.blue,
            NSAttributedString.Key.font: UIFont(name: "Nunito-Bold", size: 24)!
        ]

        self.navigationController?.navigationBar.titleTextAttributes = attrs
        self.navigationController?.navigationBar.largeTitleTextAttributes = attrs


    }

Сбой кода, вызывающий начальный контроллер представления, несколько контроллеров ранее в навигации.Похоже, контроллер теряет ссылку на вызывающего.Любая идея о том, как проверить ссылку на контроллер?

Код ошибки, показанный в начальном виде, является

Thread 1: Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value

Возникла во втором контроллере

1 Ответ

0 голосов
/ 29 сентября 2019

Не зная код ошибки, возможно, попробуйте следующее

if let vc = storyboard?.instantiateViewController(withIdentifier: "vcID") as? SecondController {
  let nav = UINavigationController(rootViewController: vc)
  self.present(nav, animated: true, completion: nil)
}

Вы уверены, что "vcID" является точным, как на раскадровке

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