この場合、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)
}
@BabyAzerty Today Extensionは、通知センターのTodayビューに表示されるウィジェットです。 –