ViewDidLoad() 不触发后台刷新
ViewDidLoad() not triggering background refresh
所以社区对我的学校项目帮助很大。但是我遇到了障碍。我正在构建一个简单的厨房计时器应用程序,它是一个带有选项卡视图的 SVC。第一个页面允许用户设置计时器,第二个是基本设置页面,允许用户触发我为满足作业要求而制作的随机背景颜色。一方面,一切都很好。一旦用户触发随机颜色用作背景,我希望该背景颜色也应用于其他视图。我接受了我在这里找到的建议: 并使用了单例。但是,当我从设置视图导航到计时器视图时,什么也没有发生。现在我将 self.view.backgroundColor = Settings.sharedInstance.backgroundColor
添加到我的 viewDidLoad()
中,如下所示:
`override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = Settings.sharedInstance.backgroundColor
print(Settings.sharedInstance.backgroundColor)
}
`
似乎什么都没有发生。然而!作为测试,我将相同的块添加到 :
@IBAction func pickerStartButtonChnage(_ sender: UIButton) {
self.view.backgroundColor = Settings.sharedInstance.backgroundColor
print(Settings.sharedInstance.backgroundColor)
if !cron.isValid{ // prevent more than one time on the thread
nameIt.text = cronStr(cronCount)
cron = Timer.scheduledTimer(timeInterval: timeInterval,
target: self,
selector: #selector(TimerViewController.timerDidEnd(_:)),
userInfo: "is done!",
repeats: true) //repeating timer in the second iteration
}
}
有效!
我的问题是为什么背景在 viewDidLoad()
中没有被触发,而当按钮被触发时它工作正常?感谢您提前提出任何建议,谢谢。
改为更改 viewWillAppear()
中的颜色。 viewDidLoad()
在视图首次加载到内存时发生,但 viewWillAppear()
每次出现时都会被调用。
override func viewWillAppear() {
super.viewWillAppear()
self.view.backgroundColor = Settings.sharedInstance.backgroundColor
}
所以社区对我的学校项目帮助很大。但是我遇到了障碍。我正在构建一个简单的厨房计时器应用程序,它是一个带有选项卡视图的 SVC。第一个页面允许用户设置计时器,第二个是基本设置页面,允许用户触发我为满足作业要求而制作的随机背景颜色。一方面,一切都很好。一旦用户触发随机颜色用作背景,我希望该背景颜色也应用于其他视图。我接受了我在这里找到的建议:self.view.backgroundColor = Settings.sharedInstance.backgroundColor
添加到我的 viewDidLoad()
中,如下所示:
`override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = Settings.sharedInstance.backgroundColor
print(Settings.sharedInstance.backgroundColor)
}
` 似乎什么都没有发生。然而!作为测试,我将相同的块添加到 :
@IBAction func pickerStartButtonChnage(_ sender: UIButton) {
self.view.backgroundColor = Settings.sharedInstance.backgroundColor
print(Settings.sharedInstance.backgroundColor)
if !cron.isValid{ // prevent more than one time on the thread
nameIt.text = cronStr(cronCount)
cron = Timer.scheduledTimer(timeInterval: timeInterval,
target: self,
selector: #selector(TimerViewController.timerDidEnd(_:)),
userInfo: "is done!",
repeats: true) //repeating timer in the second iteration
}
}
有效!
我的问题是为什么背景在 viewDidLoad()
中没有被触发,而当按钮被触发时它工作正常?感谢您提前提出任何建议,谢谢。
改为更改 viewWillAppear()
中的颜色。 viewDidLoad()
在视图首次加载到内存时发生,但 viewWillAppear()
每次出现时都会被调用。
override func viewWillAppear() {
super.viewWillAppear()
self.view.backgroundColor = Settings.sharedInstance.backgroundColor
}