swift – 每次打开时刷新今日小工具
发布时间:2020-12-14 05:31:14 所属栏目:百科 来源:网络整理
导读:我认为每天当我打开它时,它会调用“viewWillAppear”,但事实并非如此.当我在我的应用程序中更改某些内容,然后我向下滑动今天查看它有时会刷新视图,有时不会. 我在viewWillAppear中执行所有逻辑(从coreData获取数据并将该数据放到标签中),但不是每次都调用它.
我认为每天当我打开它时,它会调用“viewWillAppear”,但事实并非如此.当我在我的应用程序中更改某些内容,然后我向下滑动今天查看它有时会刷新视图,有时不会.
我在viewWillAppear中执行所有逻辑(从coreData获取数据并将该数据放到标签中),但不是每次都调用它. override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) fetchContent() setLabels() setContentHeight() tableView.reloadData() print("view will appear") } 每次用户打开Today Extensions时如何调用fetchContent和setLabels?
对于这个问题,你应该使用NSWidgetProvinding的widgetPerformUpdateWithCompletionHandler.
脚步: 1.-确保您的UIViewController实现NCWidgetProviding class MainViewController: UIViewController,NCWidgetProviding 2.-添加以下功能: func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)) { // Perform any setup necessary in order to update the view. // If an error is encountered,use NCUpdateResult.Failed // If there's no update required,use NCUpdateResult.NoData // If there's an update,use NCUpdateResult.NewData completionHandler(NCUpdateResult.NewData) } 3.-在您的情况下,您将使用.NewData. 只需确保检索所需数据并刷新视图(将每个数据放在适当位置,填写标签,图表等). 在调用此函数期间,请不要看到您的视图不可见,iOS将填充视图并拍摄快照. 然后,这是在您打开通知中心时显示的内容,直到您再次获得对应用程序的控制权.
func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)) { fetchContent() setLabels() setContentHeight() tableView.reloadData() completionHandler(NCUpdateResult.NewData) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |