Per questo motivo si dovrebbe usare NSWidgetProvinding
's widgetPerformUpdateWithCompletionHandler
.
Passi:
1.- Assicurati che il tuo UIViewController
implementa NCWidgetProviding
class MainViewController: UIViewController, NCWidgetProviding
2.- Aggiungere la seguente funzione:
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.- Nel tuo caso si vuole usare .NewData
.
Basta assicurarsi di recuperare i dati necessari e aggiornare le proprie viste (mettendo tutti i dati in posizione, riempiendo etichette, grafici, ecc.).
Non importa che la tua vista non sia visibile durante la chiamata a questa funzione, iOS riempie la vista e ne scatta un'istantanea.
Quindi questo è quello che viene visualizzato mentre si sta aprendo il centro notifiche e fino a quando non si ottiene il controllo della propria app.
Quindi, nel tuo caso sarebbe qualcosa di simile:
func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)) {
fetchContent()
setLabels()
setContentHeight()
tableView.reloadData()
completionHandler(NCUpdateResult.NewData)
}
fonte
2016-01-21 21:39:54
@BabyAzerty Today Extension è un widget che mostra alla vista Oggi nel Centro di notifica –