Итак, у меня есть ViewController, который переходит к другому при вызове didSelectRowAt. Я перехожу к новому контроллеру представления следующим образом:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let accountInsightsViewController:AccountInsightsViewController = AccountInsightsViewController(nibName: "AccountInsightsViewController", bundle: nil)
accountInsightsViewController.accountDetailsObjectFromSourceController = self.accountDetailsObjectFromSourceController
accountInsightsViewController.accountDetailsObjectFromSourceController["accountId"] = self.accountDetailsObjectFromSourceController["accountId"]
if let navigator = navigationController {
navigator.pushViewController(accountInsightsViewController, animated: true)
}
}
Однако в функции viewDidLoad()
этого нового контроллера представления атрибут accountDetailsObjectFromSourceController
снова становится пустым словарем. Когда я отлаживаю, я ясно вижу, что когда я устанавливаю этот словарь атрибутов в словарь той же структуры, случается, что он правильно устанавливает значение словаря в словарь с 3 парами ключ / значение. Однако, когда navigationController выдвигает этот V C, он падает, потому что этот словарь содержит 0 пар ключ / значение внутри нового V C s viewDidLoad()
. Может ли кто-нибудь сказать мне, почему значение устанавливается, но когда он переходит к этому V C, словарь становится пустым? Контроллер представления представлен в виде собственного файла XIB и файла V C Swift. Очевидно, я поступаю правильно, и он достигает viewDidLoad()
, но почему он не принимает значение, которое я установил прямо перед pushViewController
?