我最近重构了一个原型应用程序,以使代码更易于管理,但我遇到了一些困难,不确定如何解决它。
以前,我使用SettingsViewController来查看和设置UserDefaults。然后,我调用了一个委托方法来更新我的UI。我想更改此设置,以便SettingsViewController更新设置类,然后该类在整个应用程序中驱动UI更改。这里的关键问题确实是,作为一种方法有意义吗?下面的代码是我要在概念上进行的示例,但我不确定,任何帮助都将不胜感激!
class MySettings {
var x: Int = 0
func updateX(newX: Int) {
self.x = newX
delegate?.newXwasSet(newX: Int)
}
}
protocol SettingsDelegate {
func newXwasSet(newX: Int)
}
class SettingsViewController: UIViewController {
mysettings = MySettings()
@IBAction func xWasChanged(_ sender: UISegmentedControl) {
mysettings.updateX(SegmentedControllerName.selectedSegmentIndex)
}
}
class MainViewController: UIViewController, SettingsDelegate {
func newXwasSet(newX: Int) {
myLabel.text = NumberFormatter.localizedString(from: NSNumber(value: newX), number: .decicaml)
}