我查看了 Apple 的文档并进行了很多搜索,但找不到任何代码或有关如何执行此操作的具体说明。
我想在用户打开特定的 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);
}
}
[self updateView] 正在基于 _showData 更新小部件的视图(两个不同的视图,一个显示数据,一个没有任何数据)。
有人可以为我提供一个简单的代码示例(应用程序和小部件),说明如何将数据发送到小部件(从主机应用程序 viewController)以及如何在发送/接收数据时更新小部件的视图?