【发布时间】:2019-02-16 09:59:45
【问题描述】:
我一直在查看Coordinator tutorial,它提出了我过去编写的代码的问题。
也就是说,当重用视图控制器时,我使用了一个属性来显示不同的元素,具体取决于用户来自哪个视图控制器。这在上述教程中被描述为 hack。
例如,我使用 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,而不是使用属性,或者无论如何都可以清理它是可以接受的做法吗?
【问题讨论】:
标签: swift