我看过苹果的文档并搜索了很多,但我找不到任何代码或关于如何做到这一点的具体解释。如何使用主机应用程序中的数据更新iOS 10今日窗口小部件扩展?
我希望当用户打开特定的viewController,然后更新窗口小部件的视图来显示新的数据将数据发送到小部件。
我曾尝试:
- 添加通知。 (从应用程序发布时未在小部件代码中触发)
- 在应用程序中拥有一个单例对象并更新属性并从小部件中获取数据。 (这部分工作,但小部件从未更新)
我已经处理了更新窗口小部件中的视图,但是当我想更新窗口小部件时(由于公司机密更改了某些值),我没有调用它:
- (void) widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
NSDictionary *data = [[SINGLETON sharedInstance] getData];
if(_data == nil && data == nil) {
_showData = NO;
completionHandler(NCUpdateResultNoData);
} else if(_data != nil && [_data isEqual:data]) {
_showData = YES;
completionHandler(NCUpdateResultNoData);
} else if(data == nil) {
_data = nil;
_showData = NO;
[self updateView];
completionHandler(NCUpdateResultNewData);
} else {
_data = data;
_showData = YES;
[self updateView];
completionHandler(NCUpdateResultNewData);
}
}
[自的UpdateView]正在更新基于_showData(一个示出数据和一个无任何数据的两个不同视图,)小部件的视图。
可有人请我提供一个简单的代码示例如何将数据发送到窗口小部件(从主机应用程序的viewController)(包括应用程序和widget),以及如何发送数据时更新widget的视图/接收?
谢谢!我认为出于某种原因,你不应该在iOS 10扩展中使用NSUserDefaults(组),youtube电影真的很有帮助。 – Otziii
YouTube视频似乎不再可用。有没有机会重新上网? – valeCocoa