Я просматривал учебник по Coordinator , и в нем возникла проблема с кодом, который я написал в прошлом.
А именно, при повторном использовании контроллера представления я использовал свойство, чтобы иметь возможность отображать различные элементы в зависимости от того, с какого контроллера представления пришел пользователь.Это описывается в приведенном выше руководстве как хак.
Например, я обращаюсь к labelviewcontroller, используя
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "label" {
let vc = segue.destination as! LabelViewController
vc.originalVC = self
}
}
, а затем в labelViewController есть свойство
var originalVC: ViewController?
, котороеЗатем я изменяю элементы в viewDidLoad () на
override func viewDidLoad() {
super.viewDidLoad()
if originalVC != nil {
label.text = "came direct"
imageView.isHidden = true
}
else {
label.text = "button"
imageView.isHidden = false
}
}
У меня есть рабочий пример проекта: https://github.com/stevencurtis/ReusibilityIssues
Теперь я знаю, что ответом может быть использование учебника Coordinator,но есть ли какой-либо другой метод, который я могу использовать для простого повторного использования viewController для двух разных обстоятельств, вместо использования свойства, или есть какой-либо способ исправить это, чтобы это стало приемлемой практикой?